diff --git a/MuseV/MMCM/.gitignore b/MuseV/MMCM/.gitignore
new file mode 100755
index 0000000000000000000000000000000000000000..985b254ca41c080091b4de7455d9be21fd2c2f4f
--- /dev/null
+++ b/MuseV/MMCM/.gitignore
@@ -0,0 +1,139 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+pip-wheel-metadata/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+.hypothesis/
+.pytest_cache/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+.python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don’t work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# celery beat schedule file
+celerybeat-schedule
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+*.swp
+.*.swp
+dataset/files
+experiments
+log
+csvs
+
+.idea
+.vscode
+__pycache__/
+*.code-workspace
+.DS_Store
+third_party/
+.polaris_cache/
+*.lock
\ No newline at end of file
diff --git a/MuseV/MMCM/Dockerfile b/MuseV/MMCM/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..960b7abf34e63ffe314aa419e4f47a36b951d1e8
--- /dev/null
+++ b/MuseV/MMCM/Dockerfile
@@ -0,0 +1,83 @@
+# FROM mirrors.tencent.com/todacc/venus-std-base-cuda11.8:0.1.0
+FROM mirrors.tencent.com/todacc/venus-std-ext-cuda11.8-pytorch2.0-tf2.12-py3.10:0.7.0
+
+#MAINTAINER 维护者信息
+LABEL MAINTAINER="anchorxia"
+LABEL Email="xzqjack@hotmail.com"
+LABEL Description="gpu development image, from mirrors.tencent.com/todacc/venus-std-ext-cuda11.8-pytorch2.0-tf2.12-py3.10:0.7.0"
+
+USER root
+# 安装必须软件
+# RUN GENERIC_REPO_URL="http://mirrors.tencent.com/repository/generic/venus_repo/image_res" \
+# && cd /data/ \
+# && wget -q $GENERIC_REPO_URL/gcc/gcc-11.2.0.zip \
+# && unzip -q gcc-11.2.0.zip \
+# && cd gcc-releases-gcc-11.2.0 \
+# && ./contrib/download_prerequisites \
+# && ./configure --enable-bootstrap --enable-languages=c,c++ --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib \
+# && make --silent -j10 \
+# && make --silent install \
+# && gcc -v \
+# && rm -rf /data/gcc-releases-gcc-11.2.0 /data/gcc-11.2.0.zip
+
+# RUN yum update -y \
+# && yum install -y epel-release \
+# && yum install -y ffmpeg \
+# && yum install -y Xvfb \
+# && yum install -y centos-release-scl devtoolset-11
+RUN yum install -y wget zsh git curl tmux cmake htop iotop git-lfs zip \
+ && yum install -y autojump autojump-zsh portaudio portaudio-devel \
+ && yum clean all
+
+USER mqq
+RUN source ~/.bashrc \
+ && GENERIC_REPO_URL="http://mirrors.tencent.com/repository/generic/venus_repo/image_res" \
+ && conda deactivate \
+ # && conda remove -y -n env-2.7.18 --all \
+ # && conda remove -y -n env-3.6.8 --all \
+ # && conda remove -y -n env-3.7.7 --all \
+ # && conda remove -y -n env-3.8.8 --all \
+ # && conda remove -y -n env-3.9.2 --all \
+ # && conda remove -y -n env-novelai --all \
+ && conda create -n projectv python=3.10.6 -y \
+ && conda activate projectv \
+ && pip install venus-sdk -q -i https://mirrors.tencent.com/repository/pypi/tencent_pypi/simple \
+ --extra-index-url https://mirrors.tencent.com/pypi/simple/ \
+ && pip install tensorflow==2.12.0 tensorboard==2.12.0 \
+ && pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 -f https://mirror.sjtu.edu.cn/pytorch-wheels/torch_stable.html -i https://mirrors.bfsu.edu.cn/pypi/web/simple -U \
+ # 安装xformers,支持不同型号gpu
+ && pip install ninja==1.11.1 \
+ # && git clone https://github.com/facebookresearch/xformers.git \
+ # && cd xformers \
+ # && git checkout v0.0.17rc482 \
+ # && git submodule update --init --recursive \
+ # && pip install numpy==1.23.4 pyre-extensions==0.0.23 \
+ # && FORCE_CUDA="1" MAX_JOBS=1 TORCH_CUDA_ARCH_LIST="6.1;7.0;7.5;8.0;8.6" pip install -e . \
+ # && cd .. \
+ # 安装一堆包
+ && pip install --no-cache-dir transformers bitsandbytes decord accelerate xformers omegaconf einops imageio==2.31.1 \
+ && pip install --no-cache-dir pandas h5py matplotlib modelcards pynvml black pytest moviepy torch-tb-profiler scikit-learn librosa ffmpeg easydict webp controlnet_aux mediapipe \
+ && pip install --no-cache-dir Cython easydict gdown infomap insightface ipython librosa onnx onnxruntime onnxsim opencv_python Pillow protobuf pytube PyYAML \
+ && pip install --no-cache-dir requests scipy six tqdm gradio albumentations opencv-contrib-python imageio-ffmpeg pytorch-lightning test-tube \
+ && pip install --no-cache-dir timm addict yapf prettytable safetensors basicsr fvcore pycocotools wandb gunicorn \
+ && pip install --no-cache-dir streamlit webdataset kornia open_clip_torch streamlit-drawable-canvas torchmetrics \
+ # 安装暗水印
+ && pip install --no-cache-dir invisible-watermark==0.1.5 gdown==4.5.3 ftfy==6.1.1 modelcards==0.1.6 \
+ # 安装openmm相关包
+ && pip install--no-cache-dir -U openmim \
+ && mim install mmengine \
+ && mim install "mmcv>=2.0.1" \
+ && mim install "mmdet>=3.1.0" \
+ && mim install "mmpose>=1.1.0" \
+ # jupyters
+ && pip install ipywidgets==8.0.3 \
+ && python -m ipykernel install --user --name projectv --display-name "python(projectv)" \
+ && pip install --no-cache-dir matplotlib==3.6.2 redis==4.5.1 pydantic[dotenv]==1.10.2 loguru==0.6.0 IProgress==0.4 \
+ && pip install --no-cache-dir cos-python-sdk-v5==1.9.22 coscmd==1.8.6.30 \
+ # 必须放在最后pip,避免和jupyter的不兼容
+ && pip install --no-cache-dir markupsafe==2.0.1 \
+ && wget -P /tmp $GENERIC_REPO_URL/cpu/clean-layer.sh \
+ && sh /tmp/clean-layer.sh
+
+ENV LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
+USER root
diff --git a/MuseV/MMCM/README.md b/MuseV/MMCM/README.md
new file mode 100755
index 0000000000000000000000000000000000000000..37f5d4b7c9ee23ff01b4cd9391e0e0b5f00b70a5
--- /dev/null
+++ b/MuseV/MMCM/README.md
@@ -0,0 +1,2 @@
+# MMCM
+Process package for multi media, cross multi modal.
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/__init__.py b/MuseV/MMCM/mmcm/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..83031643e94770cf5c0932170b5609808f0852e5
--- /dev/null
+++ b/MuseV/MMCM/mmcm/__init__.py
@@ -0,0 +1,6 @@
+from .audio import *
+from .data import *
+from .music import *
+from .text import *
+from .vision import *
+from .t2p import *
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/audio/__init__.py b/MuseV/MMCM/mmcm/audio/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/data/__init__.py b/MuseV/MMCM/mmcm/data/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..0eb17fb22a06992d9e8279e0d52d1ffdc7e5904c
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/__init__.py
@@ -0,0 +1,9 @@
+from .general.items import Items, Item
+
+from .emb.emb import MediaMapEmb
+from .emb.h5py_emb import H5pyMediaMapEmb, H5pyMediaMapEmbProxy
+
+from .media_map.media_map import MediaMap, MetaInfo, MetaInfoList, MediaMapSeq
+from .media_map.media_map_process import get_sub_mediamap_by_clip_idx, get_sub_mediamap_by_stage, get_subseq_by_time
+from .clip.clip import Clip, ClipSeq
+from .clip.clipid import ClipIds, ClipIdsSeq, MatchedClipIds, MatchedClipIdsSeq
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/data/clip.py b/MuseV/MMCM/mmcm/data/clip.py
new file mode 100755
index 0000000000000000000000000000000000000000..5a57322155454e760a91ae9ca4c7a00646b64260
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/clip.py
@@ -0,0 +1,324 @@
+from copy import deepcopy
+from typing import Iterable
+import logging
+
+import numpy as np
+
+from ..utils.util import convert_class_attr_to_dict
+
+logger = logging.getLogger(__name__) # pylint: disable=invalid-name
+
+
+class Clip(object, Item):
+ """媒体片段, 指转场点与转场点之间的部分"""
+
+ def __init__(
+ self,
+ time_start,
+ duration,
+ clipid=None,
+ media_type=None,
+ mediaid=None,
+ timepoint_type=None,
+ text=None,
+ stage=None,
+ path=None,
+ duration_num=None,
+ group_time_start=0,
+ group_clipid=None,
+ original_clipid=None,
+ emb=None,
+ multi_factor=None,
+ similar_clipseq=None,
+ rythm: float = None,
+ **kwargs
+ ):
+ """
+ Args:
+ time_start (float): 开始时间,秒为单位,对应该媒体文件的, 和media_map.json上的序号一一对应
+ duration (_type_): 片段持续时间
+ clipid (int, or [int]): 由media_map提供的片段序号, 和media_map.json上的序号一一对应
+ media_type (str, optional): music, video,text, Defaults to None.
+ mediaid (int): 多媒体id, 当clipid是列表时,表示该片段是个融合片段
+ timepoint_type(int, ): 开始点的转场类型. Defaults to None.
+ text(str, optional): 该片段的文本描述,音乐可以是歌词,视频可以是台词,甚至可以是弹幕. Defaults to None.
+ stage(str, optional): 该片段在整个媒体文件中的结构位置,如音乐的intro、chrous、vesa,视频的片头、片尾、开始、高潮、转场等. Defaults to None.
+ path (_type_, optional): 该媒体文件的路径,用于后续媒体读取、处理. Defaults to None.
+ duration_num (_type_, optional): 片段持续帧数, Defaults to None.
+ group_time_start (int, optional): 当多歌曲、多视频剪辑时,group_time_start 表示该片段所对应的子媒体前所有子媒体的片段时长总和。
+ 默认0, 表示只有1个媒体文件. Defaults to 0.
+ group_clipid (int, optional): # MediaInfo.sub_meta_info 中的实际序号.
+ original_clipid (None or [int], optional): 有些片段由其他片段合并,该字段用于片段来源,id是 media_map.json 中的实际序号. Defaults to None.
+ emb (np.array, optional): 片段 综合emb,. Defaults to None.
+ multi_factor (MultiFactorFeature), optional): 多维度特征. Defaults to None.
+ similar_clipseq ([Clip]], optional): 与该片段相似的片段,具体结构待定义. Defaults to None.
+ """
+ self.media_type = media_type
+ self.mediaid = mediaid
+ self.time_start = time_start
+ self.duration = duration
+ self.clipid = clipid
+ self.path = path
+ self.timepoint_type = timepoint_type
+ self.text = text
+ self.stage = stage
+ self.group_time_start = group_time_start
+ self.group_clipid = group_clipid
+ self.duration_num = duration_num
+ self.original_clipid = original_clipid if original_clipid is not None else []
+ self.emb = emb
+ self.multi_factor = multi_factor
+ self.similar_clipseq = similar_clipseq
+ self.rythm = rythm
+ # TODO: 目前谱面中会有一些不必要的中间结果,比较占内存,现在代码里删掉,待后续数据协议确定
+ kwargs = {k: v for k, v in kwargs.items()}
+ self.__dict__.update(kwargs)
+ self.preprocess()
+
+ def preprocess(self):
+ pass
+
+ def spread_parameters(self):
+ pass
+
+ @property
+ def time_end(
+ self,
+ ):
+ return self.time_start + self.duration
+
+ @property
+ def mvp_clip(self):
+ """读取实际的片段数据为moviepy格式
+
+ Raises:
+ NotImplementedError: _description_
+ """
+ raise NotImplementedError
+
+
+class ClipSeq(object):
+ """媒体片段序列"""
+
+ ClipClass = Clip
+
+ def __init__(self, clips) -> None:
+ """_summary_
+
+ Args:
+ clips ([Clip]]): 媒体片段序列
+ """
+ if not isinstance(clips, list):
+ clips = [clips]
+ if len(clips) == 0:
+ self.clips = []
+ elif isinstance(clips[0], dict):
+ self.clips = [self.ClipClass(**d) for d in clips]
+ else:
+ self.clips = clips
+
+ def set_clip_value(self, k, v):
+ """给序列中的每一个clip 赋值"""
+ for i in range(len(self.clips)):
+ self.clips[i].__setattr__(k, v)
+
+ def __len__(
+ self,
+ ):
+ return len(self.clips)
+
+ def merge(self, other, group_time_start_delta=None, groupid_delta=None):
+ """融合其他ClipSeq。media_info 融合时需要记录 clip 所在的 groupid 和 group_time_start,delta用于表示变化
+
+ Args:
+ other (ClipSeq): 待融合的ClipSeq
+ group_time_start_delta (float, optional): . Defaults to None.
+ groupid_delta (int, optional): _description_. Defaults to None.
+ """
+ if group_time_start_delta is not None or groupid_delta is not None:
+ for i, clip in enumerate(other):
+ if group_time_start_delta is not None:
+ clip.group_time_start += group_time_start_delta
+ if groupid_delta is not None:
+ clip.groupid += groupid_delta
+ self.clips.extend(other.clips)
+ for i in range(len(self.clips)):
+ self.clips[i].group_clipid = i
+
+ @property
+ def duration(
+ self,
+ ):
+ """Clip.duration的和
+
+ Returns:
+ float: 序列总时长
+ """
+ if len(self.clips) == 0:
+ return 0
+ else:
+ return sum([c.duration for c in self.clips])
+
+ def __getitem__(self, i) -> Clip:
+ """支持索引和切片操作,如果输入是整数则返回Clip,如果是切片,则返回ClipSeq
+
+ Args:
+ i (int or slice): 索引
+
+ Raises:
+ ValueError: 需要按照给的输入类型索引
+
+ Returns:
+ Clip or ClipSeq:
+ """
+ if "int" in str(type(i)):
+ i = int(i)
+ if isinstance(i, int):
+ clip = self.clips[i]
+ return clip
+ elif isinstance(i, Iterable):
+ clips = [self.__getitem__(x) for x in i]
+ clipseq = ClipSeq(clips)
+ return clipseq
+ elif isinstance(i, slice):
+ if i.step is None:
+ step = 1
+ else:
+ step = i.step
+ clips = [self.__getitem__(x) for x in range(i.start, i.stop, step)]
+ clipseq = ClipSeq(clips)
+ return clipseq
+ else:
+ raise ValueError(
+ "unsupported input, should be int or slice, but given {}, type={}".format(
+ i, type(i)
+ )
+ )
+
+ def insert(self, idx, obj):
+ self.clips.insert(idx, obj)
+
+ def append(self, obj):
+ self.clips.append(obj)
+
+ def extend(self, objs):
+ self.clips.extend(objs)
+
+ @property
+ def duration_seq_emb(
+ self,
+ ):
+ emb = np.array([c.duration for c in self.clips])
+ return emb
+
+ @property
+ def timestamp_seq_emb(self):
+ emb = np.array([c.time_start for c in self.clips])
+ return emb
+
+ @property
+ def rela_timestamp_seq_emb(self):
+ emb = self.timestamp_seq_emb / self.duration
+ return emb
+
+ def get_factor_seq_emb(self, factor, dim):
+ emb = []
+ for c in self.clips:
+ if factor not in c.multi_factor or c.multi_factor[factor] is None:
+ v = np.full(dim, np.inf)
+ else:
+ v = c.multi_factor[factor]
+ emb.append(v)
+ emb = np.stack(emb, axis=0)
+ return emb
+
+ def semantic_seq_emb(self, dim):
+ return self.get_factor_seq_emb(factor="semantics", dim=dim)
+
+ def emotion_seq_emb(self, dim):
+ return self.get_factor_seq_emb(factor="emotion", dim=dim)
+
+ def theme_seq_emb(self, dim):
+ return self.get_factor_seq_emb(factor="theme", dim=dim)
+
+ def to_dct(
+ self,
+ target_keys=None,
+ ignored_keys=None,
+ ):
+ if ignored_keys is None:
+ ignored_keys = ["kwargs", "audio_path", "lyric_path", "start", "end"]
+ clips = [
+ clip.to_dct(target_keys=target_keys, ignored_keys=ignored_keys)
+ for clip in self.clips
+ ]
+ return clips
+
+ @property
+ def mvp_clip(self):
+ """读取实际的片段数据为moviepy格式
+
+ Raises:
+ NotImplementedError: _description_
+ """
+ raise NotImplementedError
+
+
+class ClipIds(object):
+ def __init__(
+ self,
+ clipids: list or int,
+ ) -> None:
+ """ClipSeq 中的 Clip序号,主要用于多个 Clip 融合后的 Clip, 使用场景如
+ 1. 一个 MusicClip 可以匹配到多个 VideoClip,VideoClip 的索引便可以使用 ClipIds 定义。
+
+ Args:
+ clipids (list or int): ClipSeq 中的序号
+ """
+ self.clipids = clipids if isinstance(clipids, list) else [clipids]
+
+
+class ClipIdsSeq(object):
+ def __init__(self, clipids_seq: list) -> None:
+ """多个 ClipIds,使用场景可以是
+ 1. 将MediaClipSeq 进行重组,拆分重组成更粗粒度的ClipSeq;
+
+ Args:
+ clipids_seq (list): 组合后的 ClipIds 列表
+ """
+ self.clipids_seq = (
+ clipids_seq if isinstance(clipids_seq, ClipIds) else [clipids_seq]
+ )
+
+
+# TODO: metric后续可能是字典
+class MatchedClipIds(object):
+ def __init__(
+ self, id1: ClipIds, id2: ClipIds, metric: float = None, **kwargs
+ ) -> None:
+ """两种模态数据的片段匹配对,使用场景 可以是
+ 1. 音乐片段和视频片段 之间的匹配关系,
+
+ Args:
+ id1 (ClipIds): 第一种模态的片段
+ id2 (ClipIds): 第二种模态的片段
+ metric (float): 匹配度量距离
+ """
+ self.id1 = id1 if isinstance(id1, ClipIds) else ClipIds(id1)
+ self.id2 = id2 if isinstance(id2, ClipIds) else ClipIds(id2)
+ self.metric = metric
+ self.__dict__.update(**kwargs)
+
+
+class MatchedClipIdsSeq(object):
+ def __init__(self, seq: list, metric: float = None, **kwargs) -> None:
+ """两种模态数据的序列匹配对,使用场景可以是
+ 1. 音乐片段序列和视频片段序列 之间的匹配,每一个元素都是MatchedClipIds:
+
+ Args:
+ seq (list): 两种模态数据的序列匹配对列表
+ metric (float): 匹配度量距离
+ """
+ self.seq = seq
+ self.metric = metric
+ self.__dict__.update(**kwargs)
diff --git a/MuseV/MMCM/mmcm/data/clip/__init__.py b/MuseV/MMCM/mmcm/data/clip/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e20ecac77f48377fb6d980ebd004e752ae0cf138
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/clip/__init__.py
@@ -0,0 +1,5 @@
+from .clip import Clip, ClipSeq
+from .clipid import ClipIds, MatchedClipIds, ClipIdsSeq, MatchedClipIdsSeq
+from .clip_process import find_idx_by_time, find_idx_by_clip, get_subseq_by_time, get_subseq_by_idx, clip_is_top, clip_is_middle, clip_is_end, abadon_old_return_new, reset_clipseq_id, insert_endclip, insert_startclip, drop_start_end_by_time, complete_clipseq, complete_gap
+from .clip_stat import stat_clipseq_duration
+from .clip_filter import ClipFilter, ClipSeqFilter
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/data/clip/clip.py b/MuseV/MMCM/mmcm/data/clip/clip.py
new file mode 100755
index 0000000000000000000000000000000000000000..4afaab045e96aec9049a0204150ad116abe11bdd
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/clip/clip.py
@@ -0,0 +1,197 @@
+from __future__ import annotations
+from copy import deepcopy
+
+from typing import Iterable, List, Tuple, Dict, Hashable, Any, Union
+
+import numpy as np
+
+from ...utils.util import convert_class_attr_to_dict
+
+
+from ..general.items import Items, Item
+from .clipid import MatchedClipIds
+
+
+import logging
+
+logger = logging.getLogger(__name__) # pylint: disable=invalid-name
+
+
+__all__ = ["Clip", "ClipSeq"]
+
+
+class Clip(Item):
+ """媒体片段, 指转场点与转场点之间的部分"""
+
+ def __init__(
+ self,
+ time_start: float,
+ duration: float,
+ clipid: int = None,
+ media_type: str = None,
+ mediaid: str = None,
+ timepoint_type: str = None,
+ text: str = None,
+ stage: str = None,
+ path: str = None,
+ duration_num: int = None,
+ similar_clipseq: MatchedClipIds = None,
+ dynamic: float = None,
+ **kwargs,
+ ):
+ """
+ Args:
+ time_start (float): 开始时间,秒为单位,对应该媒体文件的, 和media_map.json上的序号一一对应
+ duration (_type_): 片段持续时间
+ clipid (int, or [int]): 由media_map提供的片段序号, 和media_map.json上的序号一一对应
+ media_type (str, optional): music, video,text, Defaults to None.
+ mediaid (int): 多媒体id, 当clipid是列表时,表示该片段是个融合片段
+ timepoint_type(int, ): 开始点的转场类型. Defaults to None.
+ text(str, optional): 该片段的文本描述,音乐可以是歌词,视频可以是台词,甚至可以是弹幕. Defaults to None.
+ stage(str, optional): 该片段在整个媒体文件中的结构位置,如音乐的intro、chrous、vesa,视频的片头、片尾、开始、高潮、转场等. Defaults to None.
+ path (str, optional): 该媒体文件的路径,用于后续媒体读取、处理. Defaults to None.
+ duration_num (_type_, optional): 片段持续帧数, Defaults to None.
+ similar_clipseq ([Clip]], optional): 与该片段相似的片段,具体结构待定义. Defaults to None.
+ """
+ self.media_type = media_type
+ self.mediaid = mediaid
+ self.time_start = time_start
+ self.duration = duration
+ self.clipid = clipid
+ self.path = path
+ self.timepoint_type = timepoint_type
+ self.text = text
+ self.stage = stage
+ self.duration_num = duration_num
+ self.similar_clipseq = similar_clipseq
+ self.dynamic = dynamic
+ self.__dict__.update(**kwargs)
+
+ def preprocess(self):
+ pass
+
+ def spread_parameters(self):
+ pass
+
+ @property
+ def time_end(
+ self,
+ ) -> float:
+ return self.time_start + self.duration
+
+ def get_emb(self, key: str, idx: int) -> np.float:
+ return self.emb.get_value(key, idx)
+
+
+class ClipSeq(Items):
+ """媒体片段序列"""
+
+ def __init__(self, items: List[Clip] = None):
+ super().__init__(items)
+ self.clipseq = self.data
+
+ def preprocess(self):
+ pass
+
+ def set_clip_value(self, k: Hashable, v: Any) -> None:
+ """给序列中的每一个clip 赋值"""
+ for i in range(len(self.clipseq)):
+ self.clipseq[i].__setattr__(k, v)
+
+ def __len__(
+ self,
+ ) -> int:
+ return len(self.clipseq)
+
+ @property
+ def duration(
+ self,
+ ) -> float:
+ """Clip.duration的和
+
+ Returns:
+ float: 序列总时长
+ """
+ if len(self.clipseq) == 0:
+ return 0
+ else:
+ return sum([c.duration for c in self.clipseq])
+
+ def __getitem__(self, i: Union[int, Iterable]) -> Union[Clip, ClipSeq]:
+ """支持索引和切片操作,如果输入是整数则返回Clip,如果是切片,则返回ClipSeq
+
+ Args:
+ i (int or slice): 索引
+
+ Raises:
+ ValueError: 需要按照给的输入类型索引
+
+ Returns:
+ Clip or ClipSeq:
+ """
+ if "int" in str(type(i)):
+ i = int(i)
+ if isinstance(i, int):
+ clip = self.clipseq[i]
+ return clip
+ elif isinstance(i, Iterable):
+ clipseq = [self.__getitem__(x) for x in i]
+ clipseq = ClipSeq(clipseq)
+ return clipseq
+ elif isinstance(i, slice):
+ if i.step is None:
+ step = 1
+ else:
+ step = i.step
+ clipseq = [self.__getitem__(x) for x in range(i.start, i.stop, step)]
+ clipseq = ClipSeq(clipseq)
+ return clipseq
+ else:
+ raise ValueError(
+ "unsupported input, should be int or slice, but given {}, type={}".format(
+ i, type(i)
+ )
+ )
+
+ @property
+ def mvp_clip(self):
+ """读取实际的片段数据为moviepy格式
+
+ Raises:
+ NotImplementedError: _description_
+ """
+ raise NotImplementedError
+
+ @property
+ def duration_seq_emb(
+ self,
+ ) -> np.array:
+ emb = np.array([c.duration for c in self.clipseq])
+ return emb
+
+ @property
+ def timestamp_seq_emb(self) -> np.array:
+ emb = np.array([c.time_start for c in self.clipseq])
+ return emb
+
+ @property
+ def rela_timestamp_seq_emb(self) -> np.array:
+ duration_seq = [c.duration for c in self.clipseq]
+ emb = np.cumsum(duration_seq) / self.duration
+ return emb
+
+ def get_emb(self, key: str, idx: int) -> np.float:
+ clip_start_idx = self.clipseq[0].clipid
+ clip_end_idx = self.clipseq[-1].clipid
+ # TODO: 待修改为更通用的形式
+ if idx is None:
+ idx = range(clip_start_idx, clip_end_idx + 1)
+ elif isinstance(idx, int):
+ idx += clip_start_idx
+ elif isinstance(idx, Iterable):
+ idx = [x + clip_start_idx for x in idx]
+ else:
+ raise ValueError(
+ f"idx only support None, int, Iterable, but given {idx},type is {type(idx)}"
+ )
+ return self.emb.get_value(key, idx=idx)
diff --git a/MuseV/MMCM/mmcm/data/clip/clip_filter.py b/MuseV/MMCM/mmcm/data/clip/clip_filter.py
new file mode 100755
index 0000000000000000000000000000000000000000..a9a47491988eb4b51a05f00b446e36ed50a620de
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/clip/clip_filter.py
@@ -0,0 +1,46 @@
+from typing import Callable, List, Union
+
+from .clip import ClipSeq
+
+from .clip_process import reset_clipseq_id
+
+
+class ClipFilter(object):
+ """clip滤波器,判断 Clip 是否符合标准
+
+ Args:
+ object (bool): 是否符合输入函数
+ """
+
+ def __init__(self, funcs: Union[Callable, List[Callable]], logic_func: Callable=all) -> None:
+ """多个 clip 判断函数,通过 逻辑与、或当综合结果。
+
+ Args:
+ funcs (list of func): 列表判断函数
+ logic_func (func, optional): all or any. Defaults to all.
+ """
+ self.funcs = funcs if isinstance(funcs, list) else [funcs]
+ self.logic_func = logic_func
+
+ def __call__(self, clip) -> bool:
+ flag = [func(clip) for func in self.funcs]
+ flag = self.logic_func(flag)
+ return flag
+
+
+
+# TODO
+class ClipSeqFilter(object):
+ def __init__(self, filter: Callable) -> None:
+ self.filter = filter
+
+ def __call__(self, clipseq: ClipSeq) -> ClipSeq:
+ new_clipseq = []
+ n_clipseq = len(clipseq)
+ for i in range(n_clipseq):
+ clip = clipseq[i]
+ if self.filter(clip):
+ new_clipseq.append(clip)
+ new_clipseq = reset_clipseq_id(new_clipseq)
+ # logger.debug("ClipSeqFilter: clipseq length before={}, after={}".format(n_clipseq, len(new_clipseq)))
+ return new_clipseq
diff --git a/MuseV/MMCM/mmcm/data/clip/clip_fusion.py b/MuseV/MMCM/mmcm/data/clip/clip_fusion.py
new file mode 100755
index 0000000000000000000000000000000000000000..6c9f70595c115cd4a2c08fe03bb9c2defd8af594
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/clip/clip_fusion.py
@@ -0,0 +1,64 @@
+from typing import List, Union, Callable
+
+from copy import deepcopy
+
+from .clip import ClipSeq
+from .clip_process import reset_clipseq_id
+import logging
+
+logger = logging.getLogger(__name__) # pylint: disable=invalid-name
+
+
+# TODO: 不同类型的clip需要不同的融合方式
+def fuse_clips(s1: ClipSeq, s2: ClipSeq) -> ClipSeq:
+ """合并2个clip
+
+ Args:
+ s1 (Clip):
+ s2 (Clip):
+
+ Returns:
+ Clip: 合并后Clip
+ """
+ if not isinstance(s2, list):
+ s2 = [s2]
+ s1 = deepcopy(s1)
+ for other_clip in s2:
+ s1.duration += other_clip.duration
+ if s1.stage is not None and other_clip.stage is not None:
+ # TODO:如何保留融合的clip信息
+ s1.stage = "{}_{}".format(s1.stage, other_clip.stage)
+ s1.origin_clipid.extend(other_clip.origin_clipid)
+ if s1.timepoint_type is not None and other_clip.timepoint_type is not None:
+ s1.timepoint_type = "{}_{}".format(
+ s1.timepoint_type, other_clip.timepoint_type
+ )
+ return s1
+
+
+# TODO: 不同的filter和fusion函数不适用同一种流程,待优化
+class ClipSeqFusion(object):
+ """_summary_
+
+ Args:
+ object (_type_): _description_
+ """
+
+ def __init__(self, filter: Callable, fuse_func: Callable = None) -> None:
+ self.filter = filter
+ self.fuse_func = fuse_func
+
+ def __call__(self, clipseq: ClipSeq) -> ClipSeq:
+ new_clipseq = []
+ n_clipseq = len(clipseq)
+ for i in range(n_clipseq):
+ clip = clipseq[i]
+ if self.filter(clip):
+ new_clipseq.append(clip)
+ new_clipseq = reset_clipseq_id(new_clipseq)
+ logger.debug(
+ "ClipSeqFilter: clipseq length before={}, after={}".format(
+ n_clipseq, len(new_clipseq)
+ )
+ )
+ return new_clipseq
diff --git a/MuseV/MMCM/mmcm/data/clip/clip_process.py b/MuseV/MMCM/mmcm/data/clip/clip_process.py
new file mode 100755
index 0000000000000000000000000000000000000000..8766b02c370120a949f1f607ab32a62581ea5844
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/clip/clip_process.py
@@ -0,0 +1,366 @@
+from functools import partial
+from copy import deepcopy
+from typing import Iterable, List, Tuple, Union
+import bisect
+import logging
+
+import numpy as np
+
+
+from .clip import Clip, ClipSeq
+from .clipid import ClipIds, ClipIdsSeq, MatchedClipIds, MatchedClipIdsSeq
+
+logger = logging.getLogger(__name__) # pylint: disable=invalid-name
+
+__all__ = [
+ "find_idx_by_rela_time",
+ "find_idx_by_time",
+ "find_idx_by_clip",
+ "get_subseq_by_time",
+ "get_subseq_by_idx",
+ "clip_is_top",
+ "clip_is_middle",
+ "clip_is_end",
+ "abadon_old_return_new",
+ "reset_clipseq_id",
+ "insert_endclip",
+ "insert_startclip",
+ "drop_start_end_by_time",
+ "complete_clipseq",
+ "complete_gap",
+ "get_subseq_by_stages",
+ "find_time_by_stage",
+]
+
+
+def find_idx_by_rela_time(clipseq: ClipSeq, timepoint: float) -> int:
+ clipseq_duration = clipseq.duration
+ timepoint = clipseq_duration * timepoint
+ clipseq_times = [c.duration for c in clipseq]
+ clipseq_times.insert(0, 0)
+ clipseq_times = np.cumsum(clipseq_times)
+ idx = bisect.bisect_right(clipseq_times, timepoint)
+ idx = min(max(0, idx - 1), len(clipseq) - 1)
+ return idx
+
+
+def find_idx_by_time(clipseq: ClipSeq, timepoint: float) -> int:
+ """寻找指定时间timepoint 在 clipseq 中的片段位置
+
+ Args:
+ clipseq (ClipSeq): 待寻找的片段序列
+ timepoint (float): 指定时间位置
+
+ Returns:
+ _type_: _description_
+ """
+ clipseq_times = [c.time_start for c in clipseq]
+ idx = bisect.bisect_right(clipseq_times, timepoint)
+ idx = min(max(0, idx - 1), len(clipseq) - 1)
+ return idx
+
+
+def find_idx_by_clip(clipseq: ClipSeq, clip: Clip, eps: float = 1e-4) -> int:
+ """通过计算目标clip和clipseq中所有候选clip的交集占比来找最近clip
+
+ Args:
+ clipseq (ClipSeq): 候选clip序列
+ clip (Clip): 目标clip
+ eps (float, optional): 最小交集占比. Defaults to 1e-4.
+
+ Returns:
+ int: 目标clip在候选clip序列的位置,若无则为None
+ """
+ timepoints = np.array([[c.time_start, c.time_start + c.duration] for c in clipseq])
+ clip_time_start = clip.time_start
+ clip_duraiton = clip.duration
+ clip_time_end = clip_time_start + clip_duraiton
+ max_time_start = np.maximum(timepoints[:, 0], clip_time_start)
+ min_time_end = np.minimum(timepoints[:, 1], clip_time_end)
+ intersection = min_time_end - max_time_start
+ intersection_ratio = intersection / clip_duraiton
+ max_intersection_ratio = np.max(intersection_ratio)
+ idx = np.argmax(intersection_ratio) if max_intersection_ratio > eps else None
+ return idx
+
+
+def get_subseq_by_time(
+ clipseq: ClipSeq,
+ start: float = 0,
+ duration: float = None,
+ end: float = 1,
+ eps: float = 1e-2,
+) -> ClipSeq:
+ """根据时间对媒体整体做掐头去尾,保留中间部分。,也可以是大于1的数。
+ start和end如果是0-1的小数,则认为是是相对时间位置,实际位置会乘以duration;
+ start和end如果是大于1的数,则是绝对时间位置。
+
+ Args:
+ clipseq (ClipSeq): 待处理的序列
+ start (float,): 保留部分的开始,. Defaults to 0.
+ duration (float, optional): 媒体文件当前总时长
+ end (float, optional): 保留部分的结尾. Defaults to 1.
+
+ Returns:
+ ClipSeq: 处理后的序列
+ """
+ if (start == 0 or start is None) and (end is None or end == 1):
+ logger.warning("you should set start or end")
+ return clipseq
+ if duration is None:
+ duration = clipseq.duration
+ if start is None or start == 0:
+ clip_start_idx = 0
+ else:
+ if start < 1:
+ start = start * duration
+ clip_start_idx = find_idx_by_time(clipseq, start)
+ if end is None or end == 1 or np.abs(duration - end) < eps:
+ clip_end_idx = -1
+ else:
+ if end < 1:
+ end = end * duration
+ clip_end_idx = find_idx_by_time(clipseq, end)
+ if clip_end_idx != -1 and clip_start_idx >= clip_end_idx:
+ logger.error(
+ f"clip_end_idx({clip_end_idx}) should be > clip_start_idx({clip_start_idx})"
+ )
+ subseq = get_subseq_by_idx(clipseq, clip_start_idx, clip_end_idx)
+ return subseq
+
+
+def get_subseq_by_idx(clipseq: ClipSeq, start: int = None, end: int = None) -> ClipSeq:
+ """通过指定索引范围,切片子序列
+
+ Args:
+ clipseq (ClipSeq):
+ start (int, optional): 开始索引. Defaults to None.
+ end (int, optional): 结尾索引. Defaults to None.
+
+ Returns:
+ _type_: _description_
+ """
+ if start is None and end is None:
+ return clipseq
+ if start is None:
+ start = 0
+ if end is None:
+ end = len(clipseq)
+ return clipseq[start:end]
+
+
+def clip_is_top(clip: Clip, total: float, th: float = 0.1) -> bool:
+ """判断Clip是否属于开始部分
+
+ Args:
+ clip (Clip):
+ total (float): 所在ClipSeq总时长
+ th (float, optional): 开始范围的截止位置. Defaults to 0.05.
+
+ Returns:
+ Bool: 是不是头部Clip
+ """
+ clip_time = clip.time_start
+ if clip_time / total <= th:
+ return True
+ else:
+ return False
+
+
+def clip_is_end(clip: Clip, total: float, th: float = 0.9) -> bool:
+ """判断Clip是否属于结尾部分
+
+ Args:
+ clip (Clip):
+ total (float): 所在ClipSeq总时长
+ th (float, optional): 结尾范围的开始位置. Defaults to 0.9.
+
+ Returns:
+ Bool: 是不是尾部Clip
+ """
+ clip_time = clip.time_start + clip.duration
+ if clip_time / total >= th:
+ return True
+ else:
+ return False
+
+
+def clip_is_middle(
+ clip: Clip, total: float, start: float = 0.05, end: float = 0.9
+) -> bool:
+ """判断Clip是否属于中间部分
+
+ Args:
+ clip (Clip):
+ total (float): 所在ClipSeq总时长
+ start (float, optional): 中间范围的开始位置. Defaults to 0.05.
+ start (float, optional): 中间范围的截止位置. Defaults to 0.9.
+
+ Returns:
+ Bool: 是不是中间Clip
+ """
+ if start >= 0 and start < 1:
+ start = total * start
+ if end > 0 and end <= 1:
+ end = total * end
+ clip_time_start = clip.time_start
+ clip_time_end = clip.time_start + clip.duration
+ if (clip_time_start >= start) and (clip_time_end <= end):
+ return True
+ else:
+ return False
+
+
+def abadon_old_return_new(s1: Clip, s2: Clip) -> Clip:
+ """特殊的融合方式
+ Args:
+
+ s1 (Clip): 靠前的clip
+ s2 (Clip): 靠后的clip
+
+ Returns:
+ Clip: 融合后的Clip
+ """
+ return s2
+
+
+# TODO:待确认是否要更新clipid,不方便对比着json进行debug
+def reset_clipseq_id(clipseq: ClipSeq) -> ClipSeq:
+ for i in range(len(clipseq)):
+ if isinstance(clipseq[i], dict):
+ clipseq[i]["clipid"] = i
+ else:
+ clipseq[i].clipid = i
+ return clipseq
+
+
+def insert_startclip(clipseq: ClipSeq) -> ClipSeq:
+ """给ClipSeq插入一个开始片段。
+
+ Args:
+ clipseq (ClipSeq):
+ clip_class (Clip, optional): 插入的Clip类型. Defaults to Clip.
+
+ Returns:
+ ClipSeq: 插入头部Clip的新ClipSeq
+ """
+ if clipseq[0].time_start > 0:
+ start = clipseq.ClipClass(
+ time_start=0, duration=round(clipseq[0].time_start, 3), timepoint_type=0
+ )
+ clipseq.insert(0, start)
+ clipseq = reset_clipseq_id(clipseq)
+ return clipseq
+
+
+def insert_endclip(clipseq: ClipSeq, duration: float) -> ClipSeq:
+ """给ClipSeq插入一个尾部片段。
+
+ Args:
+ clipseq (ClipSeq):
+ duration(float, ): 序列的总时长
+ clip_class (Clip, optional): 插入的Clip类型. Defaults to Clip.
+
+ Returns:
+ ClipSeq: 插入尾部Clip的新ClipSeq
+ """
+ clipseq_endtime = clipseq[-1].time_start + clipseq[-1].duration
+ if duration - clipseq_endtime > 1:
+ end = clipseq.ClipClass(
+ time_start=round(clipseq_endtime, 3),
+ duration=round(duration - clipseq_endtime, 3),
+ timepoint_type=0,
+ )
+ clipseq.append(end)
+ clipseq = reset_clipseq_id(clipseq)
+ return clipseq
+
+
+def drop_start_end_by_time(
+ clipseq: ClipSeq, start: float, end: float, duration: float = None
+):
+ return get_subseq_by_time(clipseq=clipseq, start=start, end=end, duration=duration)
+
+
+def complete_clipseq(
+ clipseq: ClipSeq, duration: float = None, gap_th: float = 2
+) -> ClipSeq:
+ """绝大多数需要clipseq中的时间信息是连续、完备的,有时候是空的,需要补足的部分。
+ 如歌词时间戳生成的music_map缺头少尾、中间有空的部分。
+
+ Args:
+ clipseq (ClipSeq): 待补集的序列
+ duration (float, optional): 整个序列持续时间. Defaults to None.
+ gap_th (float, optional): 有时候中间空隙过短就会被融合到上一个片段中. Defaults to 2.
+
+ Returns:
+ ClipSeq: 补集后的序列,时间连续、完备。
+ """
+ if isinstance(clipseq, list):
+ clipseq = ClipSeq(clipseq)
+ return complete_clipseq(clipseq=clipseq, duration=duration, gap_th=gap_th)
+ clipseq = complete_gap(clipseq, th=gap_th)
+ clipseq = insert_startclip(clipseq)
+ if duration is not None:
+ clipseq = insert_endclip(clipseq, duration)
+ return clipseq
+
+
+def complete_gap(clipseq: ClipSeq, th: float = 2) -> ClipSeq:
+ """generate blank clip timepoint = 0,如果空白时间过短,则空白附到上一个歌词片段中。
+
+
+ Args:
+ clipseq (ClipSeq): 原始的歌词生成的MusicClipSeq
+ th (float, optional): 有时候中间空隙过短就会被融合到上一个片段中. Defaults to 2.
+
+ Returns:
+ ClipSeq: 补全后的
+ """
+ gap_clipseq = []
+ clipid = 0
+ for i in range(len(clipseq) - 1):
+ time_start = clipseq[i].time_start
+ duration = clipseq[i].duration
+ time_end = time_start + duration
+ next_time_start = clipseq[i + 1].time_start
+ time_diff = next_time_start - time_end
+ if time_diff >= th:
+ blank_clip = clipseq.ClipClass(
+ time_start=time_end,
+ duration=time_diff,
+ timepoint_type=0,
+ clipid=clipid,
+ )
+ gap_clipseq.append(blank_clip)
+ clipid += 1
+ else:
+ clipseq[i].duration = next_time_start - time_start
+ clipseq.extend(gap_clipseq)
+ clipseq.clips = sorted(clipseq.clips, key=lambda clip: clip.time_start)
+ reset_clipseq_id(clipseq)
+ return clipseq
+
+
+def find_time_by_stage(
+ clipseq: ClipSeq, stages: Union[str, List[str]] = None
+) -> Tuple[float, float]:
+ if isinstance(stages, list):
+ stages = [stages]
+ for clip in clipseq:
+ if clip.stage in stages:
+ return clip.time_start, clip.time_end
+ return None, None
+
+
+def get_subseq_by_stages(clipseq: ClipSeq, stages: Union[str, List[str]]) -> ClipSeq:
+ if isinstance(stages, List):
+ stages = [stages]
+ start, _ = find_time_by_stage(clipseq, stages[0])
+ _, end = find_time_by_stage(clipseq, stages[-1])
+ if start1 is None:
+ start1 = 0
+ if end2 is None:
+ end2 = clipseq.duration
+ subseq = get_subseq_by_time(clipseq=clipseq, start=start, end=end)
+ return subseq
diff --git a/MuseV/MMCM/mmcm/data/clip/clip_stat.py b/MuseV/MMCM/mmcm/data/clip/clip_stat.py
new file mode 100755
index 0000000000000000000000000000000000000000..ba4e826e5591f4ffbccace67dc75637be02bd7c7
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/clip/clip_stat.py
@@ -0,0 +1,13 @@
+from typing import Tuple
+
+import numpy as np
+
+from .clip import ClipSeq
+
+
+def stat_clipseq_duration(
+ clipseq: ClipSeq,
+) -> Tuple[np.array, np.array]:
+ clip_duration = [clip.duration for clip in clipseq]
+ (hist, bin_edges) = np.histogram(clip_duration)
+ return hist, bin_edges
diff --git a/MuseV/MMCM/mmcm/data/clip/clipid.py b/MuseV/MMCM/mmcm/data/clip/clipid.py
new file mode 100755
index 0000000000000000000000000000000000000000..d323e825bee48aa8ea9efe3513cec532114b9f8e
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/clip/clipid.py
@@ -0,0 +1,70 @@
+from __future__ import annotations
+
+from typing import Union, List
+
+__all__ = [
+ "ClipIds",
+ "ClipIdsSeq",
+ "MatchedClipIds",
+ "MatchedClipIdsSeq",
+]
+
+
+class ClipIds(object):
+ def __init__(
+ self,
+ clipids: Union[int, List[int]],
+ ) -> None:
+ """ClipSeq 中的 Clip序号,主要用于多个 Clip 融合后的 Clip, 使用场景如
+ 1. 一个 MusicClip 可以匹配到多个 VideoClip,VideoClip 的索引便可以使用 ClipIds 定义。
+
+ Args:
+ clipids (list or int): ClipSeq 中的序号
+ """
+ self.clipids = clipids if isinstance(clipids, list) else [clipids]
+
+
+class ClipIdsSeq(object):
+ def __init__(self, clipids_seq: List[ClipIds]) -> None:
+ """多个 ClipIds,使用场景可以是
+ 1. 将MediaClipSeq 进行重组,拆分重组成更粗粒度的ClipSeq;
+
+ Args:
+ clipids_seq (list): 组合后的 ClipIds 列表
+ """
+ self.clipids_seq = (
+ clipids_seq if isinstance(clipids_seq, ClipIds) else [clipids_seq]
+ )
+
+
+# TODO: metric后续可能是字典
+class MatchedClipIds(object):
+ def __init__(
+ self, id1: ClipIds, id2: ClipIds, metric: float = None, **kwargs
+ ) -> None:
+ """两种模态数据的片段匹配对,使用场景 可以是
+ 1. 音乐片段和视频片段 之间的匹配关系,
+
+ Args:
+ id1 (ClipIds): 第一种模态的片段
+ id2 (ClipIds): 第二种模态的片段
+ metric (float): 匹配度量距离
+ """
+ self.id1 = id1 if isinstance(id1, ClipIds) else ClipIds(id1)
+ self.id2 = id2 if isinstance(id2, ClipIds) else ClipIds(id2)
+ self.metric = metric
+ self.__dict__.update(**kwargs)
+
+
+class MatchedClipIdsSeq(object):
+ def __init__(self, seq: List[MatchedClipIds], metric: float = None, **kwargs) -> None:
+ """两种模态数据的序列匹配对,使用场景可以是
+ 1. 音乐片段序列和视频片段序列 之间的匹配,每一个元素都是MatchedClipIds:
+
+ Args:
+ seq (list): 两种模态数据的序列匹配对列表
+ metric (float): 匹配度量距离
+ """
+ self.seq = seq
+ self.metric = metric
+ self.__dict__.update(**kwargs)
diff --git a/MuseV/MMCM/mmcm/data/crawl/__init__.py b/MuseV/MMCM/mmcm/data/crawl/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/data/crawl/download.py b/MuseV/MMCM/mmcm/data/crawl/download.py
new file mode 100755
index 0000000000000000000000000000000000000000..db74afc21f7e6816ba64b629acd2c22883e44e1a
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/crawl/download.py
@@ -0,0 +1,72 @@
+
+from collections import namedtuple
+from typing import NamedTuple, Tuple, List
+import logging
+import os
+import numpy as np
+import subprocess
+
+import requests
+
+import wget
+
+from .youtube import download_youtube
+from .flicker import download_flickr
+from .ffmpeg import ffmpeg_load
+
+logger = logging.getLogger(__name__)
+
+# DownloadStatus = namedtuple("DownloadStatus", ["status_code", "msg"])
+
+status_code = {0: "download: succ",
+ -1: "download: failed",
+ -2: "clip: failed",
+ -3: "directory not exists",
+ -4: "skip task",
+ - 404: "param error"}
+
+
+def download_with_request(url, path):
+ res = requests.get(url)
+ if res.status_code == '200' or res.status_code == 200:
+ with open(path, "wb") as f:
+ f.write(res.content)
+ else:
+ print('request failed')
+ return path
+
+def download_video(url, save_path:str=None, save_dir:str=None, basename:str=None, filename:str=None, format:str=None, data_type: str="wget", **kwargs) -> Tuple[int, str]:
+ if save_path is None:
+ if basename is None:
+ basename = f"{filename}.{format}"
+ save_path = os.path.join(save_dir, basename)
+ if save_dir is None:
+ save_dir = os.path.dirname(save_path)
+ if basename is None:
+ basename = os.path.basename(save_path)
+ if filename is None:
+ filename, format = os.path.splitext(basename)
+ os.makedirs(save_dir, exist_ok=True)
+
+ if os.path.exists(save_path):
+ return (-4, save_path)
+
+ try:
+ if data_type == "requests":
+ save_path = download_with_request(url=url, path=save_path)
+ elif data_type == "wget":
+ save_path = wget.download(url=url, out=save_path)
+ elif data_type == "youtube":
+ save_path = download_youtube(url, format=format, save_dir=save_dir, filename=basename)
+ elif data_type == "flickr":
+ save_path = download_flickr(url, save_path)
+ elif data_type == "ffmpeg":
+ code = ffmpeg_load(url=url, save_path=save_path)
+ else:
+ raise ValueError(f"data_type shoulbe one of [wget, youtube, flickr, ffmpeg], but given {data_type}")
+ except Exception as e:
+ logger.error("failed download file {} to {} failed!".format(url, save_path))
+ logger.exception(e)
+ return (-1, None)
+
+ return (0, save_path)
diff --git a/MuseV/MMCM/mmcm/data/crawl/error.py b/MuseV/MMCM/mmcm/data/crawl/error.py
new file mode 100755
index 0000000000000000000000000000000000000000..2e26dc8734521b6a47118bc86ffe85f9edddf804
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/crawl/error.py
@@ -0,0 +1,20 @@
+
+
+class SubprocessError(Exception):
+ """
+ Exception object that contains information about an error that occurred
+ when running a command line command with a subprocess.
+ """
+
+ def __init__(self, cmd, return_code, stdout, stderr, *args):
+ msg = 'Got non-zero exit code ({1}) from command "{0}": {2}'
+ if stderr.strip():
+ err_msg = stderr
+ else:
+ err_msg = stdout
+ msg = msg.format(cmd[0], return_code, err_msg)
+ self.cmd = cmd
+ self.cmd_return_code = return_code
+ self.cmd_stdout = stdout
+ self.cmd_stderr = stderr
+ super(SubprocessError, self).__init__(msg, *args)
diff --git a/MuseV/MMCM/mmcm/data/crawl/ffmpeg.py b/MuseV/MMCM/mmcm/data/crawl/ffmpeg.py
new file mode 100755
index 0000000000000000000000000000000000000000..1f2651df39a179b48c85610274d745fb1b0e9ad5
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/crawl/ffmpeg.py
@@ -0,0 +1,39 @@
+import subprocess
+
+from .error import SubprocessError
+
+
+class FfmpegInvalidURLError(Exception):
+ """
+ Exception raised when a 4XX or 5XX error is returned when making a request
+ """
+
+ def __init__(self, url, error, *args):
+ self.url = url
+ self.error = error
+ msg = 'Got error when making request to "{}": {}'.format(url, error)
+ super(FfmpegInvalidURLError, self).__init__(msg, *args)
+
+
+def ffmpeg_load(url: str, save_path: str) -> str:
+
+ def run(cmd):
+ proc = subprocess.Popen(
+ cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ stdout, stderr = proc.communicate()
+ return_code = proc.returncode
+
+ if return_code != 0:
+ raise SubprocessError(
+ cmd, return_code, stdout.decode(), stderr.decode())
+ return return_code
+
+ command = ['ffmpeg', '-n', '-i', url, '-t', '10', '-f', 'mp4',
+ '-r', '30', '-vcodec', 'h264', save_path, '-loglevel', 'error']
+ code = run(command)
+ return code
+
+
+
+
+
diff --git a/MuseV/MMCM/mmcm/data/crawl/flicker.py b/MuseV/MMCM/mmcm/data/crawl/flicker.py
new file mode 100755
index 0000000000000000000000000000000000000000..6a05cf468878b6986541a3969ae581b4565ec42a
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/crawl/flicker.py
@@ -0,0 +1,22 @@
+import os
+
+from .ffmpeg import ffmpeg_load
+
+
+def extract_flickr_id(url):
+ return url.strip('/').split('/')[-4]
+
+
+def download_flickr(url: str, save_path: str) -> str:
+ code = -1
+ code = ffmpeg_load(url=url,
+ save_path=save_path)
+ if code == 0:
+ return (code, save_path)
+ # only retry when failed!
+ flickr_id = extract_flickr_id(url)
+ url = 'https://www.flickr.com/video_download.gne?id={}'.format(
+ flickr_id)
+ code = ffmpeg_load(url=url,
+ save_path=save_path)
+ return save_path
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/data/crawl/youtube.py b/MuseV/MMCM/mmcm/data/crawl/youtube.py
new file mode 100755
index 0000000000000000000000000000000000000000..027c2bac638ba4963940a614c6d2555a83a2ce23
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/crawl/youtube.py
@@ -0,0 +1,13 @@
+
+import os
+
+from pytube import YouTube
+
+
+def download_youtube(url, format, save_dir, filename):
+ youtube = YouTube(url)
+ streams = youtube.streams.filter(progressive=True,
+ file_extension=format)
+ save_path = streams.get_highest_resolution().download(output_path=save_dir,
+ filename=filename)
+ return save_path
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/data/emb/__init__.py b/MuseV/MMCM/mmcm/data/emb/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..6ac25b70a9c17b65e8fd80c176004eb3447d542e
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/emb/__init__.py
@@ -0,0 +1,2 @@
+from .emb import *
+from .h5py_emb import H5pyMediaMapEmb, H5pyMediaMapEmbProxy
diff --git a/MuseV/MMCM/mmcm/data/emb/emb.py b/MuseV/MMCM/mmcm/data/emb/emb.py
new file mode 100755
index 0000000000000000000000000000000000000000..631604ce64139095330df347c6a02f7f755a9496
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/emb/emb.py
@@ -0,0 +1,104 @@
+"""用于将 mediamap中的emb存储独立出去,仍处于开发中
+"""
+import logging
+
+import numpy as np
+
+
+logger = logging.getLogger(__name__) # pylint: disable=invalid-name
+
+__all__ = ["MediaMapEmb"]
+
+
+class MediaMapEmb(object):
+ def __init__(self, path: str) -> None:
+ """
+ OfflineEmb = {
+ "overall_algo": Emb, # 整个文件的Emb
+ # 整个文件的多维度 Emb
+ "theme": np.array, # 主题,
+ "emotion_algo": np.array, # 情绪,
+ "semantic_algo": np.array, # 语义
+
+ "clips_overall_algo": np.array, n_clip x clip_emb
+ "clips_emotion_algo": np.array, n_clip x clip_emb
+ "clips_semantic_algo": np.array, n_clip x clip_emb
+ "clips_theme_algo": np.array, n_clip x clip_emb
+
+ "scenes_overall_algo": np.array, n_scenes x scene_emb
+ "scenes_emotion_algo": np.array, n_scenes x scene_emb
+ "scenes_semantic_algo": np.array, n_scenes x scene_emb
+ "scenes_theme_algo": E np.arraymb, n_scenes x scene_emb
+ # 片段可以是转场切分、MusicStage等, clips目前属于转场切分片段
+ # 若后续需要新增段落分割,可以和clips同级新增 stage字段。
+
+ "frames_overall_algo": np.array, n_frames x frame_emb
+ "frames_emotion_algo": np.array, n_frames x frame_emb
+ "frames_semantic_algo": np.array, n_frames x frame_emb
+ "frames_theme_algo": np.array, n_frames x frame_emb
+ "frames_objs": {
+ "frame_id": { #
+ "overall_algo": np.array, n_objs x obj_emb
+ "emotion_algo": np.array, n_objs x obj_emb
+ "semantic_algo": np.array, n_objs x obj_emb
+ "theme_algo": np.array, n_objs x obj_emb
+ }
+ }
+ "roles_algo": {
+ "roleid": np.array, n x obj_emb
+ }
+ }
+
+
+ Args:
+ path (str): hdf5 存储路径
+ """
+ self.path = path
+
+ def get_value(self, key, idx=None):
+ raise NotImplementedError
+
+ def __getitem__(self, key):
+ return self.get_value(key)
+
+ def get_media(self, factor, algo):
+ return self.get_value(f"{factor}_{algo}")
+
+ def get_clips(self, factor, algo, idx=None):
+ return self.get_value(f"clips_{factor}_{algo}", idx=idx)
+
+ def get_frames(self, factor, algo, idx=None):
+ return self.get_value(f"frames_{factor}_{algo}", idx=idx)
+
+ def get_frame_objs(self, frame_idx, factor, algo, idx=None):
+ return self.get_value(["frames_objs", frame_idx, f"{factor}_{algo}"], idx=idx)
+
+ def set_value(self, key, value, idx=None):
+ raise NotImplementedError
+
+ def set_media(self, factor, value, algo):
+ self.set_value([f"{factor}_{algo}"], value)
+
+ def set_clips(self, factor, value, algo, idx=None):
+ self.set_value([f"clips_{factor}_{algo}"], value, idx=idx)
+
+ def set_frames(self, factor, value, algo, idx=None):
+ self.set_value([f"frames_{factor}_{algo}"], value)
+
+ def set_frame_objs(self, frame_idx, factor, value, algo, idx=None):
+ return self.set_value(
+ ["frames_objs", frame_idx, f"{factor}_{algo}"], value, idx=idx
+ )
+
+ def set_roles(self, algo, value, idx=None):
+ return self.set_value(f"roles_{algo}", value, idx=idx)
+
+ def get_roles(self, algo, idx=None):
+ return self.get_value(f"roles_{algo}", idx=idx)
+
+ def __setitem__(self, key, value):
+ self.set_value(self, key, value)
+
+
+class MediaMapEmbProxy(MediaMapEmb):
+ pass
diff --git a/MuseV/MMCM/mmcm/data/emb/h5py_emb.py b/MuseV/MMCM/mmcm/data/emb/h5py_emb.py
new file mode 100755
index 0000000000000000000000000000000000000000..4391f052ced20c00475b5424f7a1fd6ab3c47943
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/emb/h5py_emb.py
@@ -0,0 +1,119 @@
+from typing import Union, List
+import logging
+
+import h5py
+import numpy as np
+
+from .emb import MediaMapEmb
+
+logger = logging.getLogger(__name__) # pylint: disable=invalid-name
+
+__all__ = ["H5pyMediaMapEmb", "save_value_with_h5py"]
+
+
+def save_value_with_h5py(
+ path: str,
+ value: Union[np.ndarray, None],
+ key: str,
+ idx: Union[int, List[int]] = None,
+ dtype=None,
+ shape=None,
+ overwrite: bool = False,
+):
+ with h5py.File(path, "a") as f:
+ if dtype is None:
+ dtype = value.dtype
+ if shape is None:
+ shape = value.shape
+ del_key = False
+ if key in f:
+ if overwrite:
+ del_key = True
+ if f[key].dtype != h5py.special_dtype(vlen=str):
+ if f[key].shape != value.shape:
+ del_key = True
+ if del_key:
+ del f[key]
+ if key not in f:
+ f.create_dataset(key, shape=shape, dtype=dtype)
+ if idx is None:
+ f[key][...] = value
+ else:
+ f[key][idx] = value
+
+
+class H5pyMediaMapEmb(MediaMapEmb):
+ def __init__(self, path: str) -> None:
+ """
+ OfflineEmb = {
+ "overall_algo": Emb, # 整个文件的Emb
+ # 整个文件的多维度 Emb
+ "theme": np.array, # 主题,
+ "emotion_algo": np.array, # 情绪,
+ "semantic_algo": np.array, # 语义
+
+ "clips_overall_algo": np.array, n_clip x clip_emb
+ "clips_emotion_algo": np.array, n_clip x clip_emb
+ "clips_semantic_algo": np.array, n_clip x clip_emb
+ "clips_theme_algo": np.array, n_clip x clip_emb
+
+ "scenes_overall_algo": np.array, n_scenes x scene_emb
+ "scenes_emotion_algo": np.array, n_scenes x scene_emb
+ "scenes_semantic_algo": np.array, n_scenes x scene_emb
+ "scenes_theme_algo": E np.arraymb, n_scenes x scene_emb
+ # 片段可以是转场切分、MusicStage等, clips目前属于转场切分片段
+ # 若后续需要新增段落分割,可以和clips同级新增 stage字段。
+
+ "frames_overall_algo": np.array, n_frames x frame_emb
+ "frames_emotion_algo": np.array, n_frames x frame_emb
+ "frames_semantic_algo": np.array, n_frames x frame_emb
+ "frames_theme_algo": np.array, n_frames x frame_emb
+ "frames_objs_algo": {
+ "frame_id_algo": { #
+ "overall_algo": np.array, n_objs x obj_emb
+ "emotion_algo": np.array, n_objs x obj_emb
+ "semantic_algo": np.array, n_objs x obj_emb
+ "theme_algo": np.array, n_objs x obj_emb
+ }
+ }
+ "roles_algo": {
+ "roleid": np.array, n x obj_emb
+ }
+ }
+
+ Args:
+ path (str): hdf5 存储路径
+ """
+ super().__init__(path)
+ # 待优化支持 with open 的方式来读写
+ self.f = h5py.File(path, "a")
+
+ def _keys_index(self, key):
+ if not isinstance(key, list):
+ key = [key]
+ key = "/".join([str(x) for x in key if x is not None])
+ return key
+
+ def get_value(self, key, idx=None):
+ new_key = self._keys_index(key)
+ if idx is None:
+ data = np.array(self.f[new_key])
+ else:
+ data = np.array(self.f[new_key][idx])
+ return data
+
+ def set_value(self, key, value, idx=None):
+ new_key = self._keys_index(key)
+ if new_key not in self.f:
+ self.f.create_dataset(new_key, shape=value.shape, dtype=value.dtype)
+ if idx is None:
+ self.f[new_key][...] = value
+ else:
+ self.f[new_key][idx] = value
+
+ def close(self):
+ self.f.close()
+
+
+class H5pyMediaMapEmbProxy(H5pyMediaMapEmb):
+ pass
diff --git a/MuseV/MMCM/mmcm/data/emb/json_emb.py b/MuseV/MMCM/mmcm/data/emb/json_emb.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/data/emb/numpy_emb.py b/MuseV/MMCM/mmcm/data/emb/numpy_emb.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/data/extract_feature/__init__.py b/MuseV/MMCM/mmcm/data/extract_feature/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/data/extract_feature/base_extract_feature.py b/MuseV/MMCM/mmcm/data/extract_feature/base_extract_feature.py
new file mode 100755
index 0000000000000000000000000000000000000000..d253ea706f2ff857e730c34adea72676769cacad
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/extract_feature/base_extract_feature.py
@@ -0,0 +1,28 @@
+from typing import List, Union, Any
+
+import torch
+from torch import nn
+import numpy as np
+import h5py
+
+
+class BaseFeatureExtractor(nn.Module):
+ def __init__(self, device: str = "cpu", dtype=torch.float32, name: str = None):
+ super().__init__()
+ self.device = device
+ self.dtype = dtype
+ self.name = name
+
+ def extract(
+ self, data: Any, return_type: Union[str, str] = "numpy"
+ ) -> Union[np.ndarray, torch.tensor]:
+ raise NotADirectoryError
+
+ def __call__(self, *args: Any, **kwds: Any) -> Any:
+ return self.extract(*args, **kwds)
+
+ def save_with_h5py(self, f: Union[h5py.File, str], *args, **kwds):
+ raise NotImplementedError
+
+ def forward(self, *args: Any, **kwds: Any) -> Any:
+ return self.extract(*args, **kwds)
diff --git a/MuseV/MMCM/mmcm/data/general/__init__.py b/MuseV/MMCM/mmcm/data/general/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..134eaf6fff07fba3089ad506e8612b8186d7cb8c
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/general/__init__.py
@@ -0,0 +1 @@
+from .items import Items
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/data/general/items.py b/MuseV/MMCM/mmcm/data/general/items.py
new file mode 100755
index 0000000000000000000000000000000000000000..2252013e6c424e0bc398e1489667d000542923ee
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/general/items.py
@@ -0,0 +1,69 @@
+from collections import UserList
+from collections.abc import Iterable
+from typing import Iterator, Any, List
+
+from ...utils.util import convert_class_attr_to_dict
+
+__all__ = ["Item", "Items"]
+
+
+class Item(object):
+ def __init__(self) -> None:
+ pass
+
+ def to_dct(self, target_keys: List[str] = None, ignored_keys: List[str] = None):
+ base_ignored_keys = [
+ "kwargs",
+ ]
+ if isinstance(ignored_keys, list):
+ base_ignored_keys.extend(ignored_keys)
+ elif isinstance(ignored_keys, str):
+ base_ignored_keys.append(ignored_keys)
+ else:
+ pass
+ return convert_class_attr_to_dict(
+ self, target_keys=target_keys, ignored_keys=base_ignored_keys
+ )
+
+ def preprocess(self):
+ pass
+
+
+class Items(UserList):
+ def __init__(
+ self,
+ data: Any = None,
+ ):
+ if data is None:
+ data = list()
+ if not isinstance(data, list):
+ data = [data]
+ super().__init__(data)
+
+ def __len__(self):
+ return len(self.data)
+
+ def __getitem__(self, i):
+ return self.data[i]
+
+ def __delitem__(self, i):
+ del self.data[i]
+
+ def __setitem__(self, i, v):
+ self.data[i] = v
+
+ def insert(self, i, v):
+ self.data.insert(i, v)
+
+ def __str__(self):
+ return str(self.data)
+
+ def to_dct(self, target_keys: List[str] = None, ignored_keys: List[str] = None):
+ items = [item.to_dct(target_keys, ignored_keys) for item in self.data]
+ return items
+
+ def __iter__(self) -> Iterator:
+ return iter(self.data)
+
+ def preprocess(self):
+ pass
diff --git a/MuseV/MMCM/mmcm/data/media_map/__init__.py b/MuseV/MMCM/mmcm/data/media_map/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..736ae38ada810bfb2d0ee4e5cef3dfc5c28a425b
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/media_map/__init__.py
@@ -0,0 +1 @@
+from .media_map import MetaInfo, MediaMap, MetaInfoList
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/data/media_map/media_map.py b/MuseV/MMCM/mmcm/data/media_map/media_map.py
new file mode 100755
index 0000000000000000000000000000000000000000..0e34f128fb9a8d654cbb1a9fa14f4c1d17dcc034
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/media_map/media_map.py
@@ -0,0 +1,393 @@
+from __future__ import annotations
+import bisect
+
+import logging
+from copy import deepcopy
+
+from functools import partial
+from typing import Any, Callable, Iterable, List, Union, Tuple, Dict
+
+import numpy as np
+from ..clip.clip_process import get_subseq_by_time
+from ..clip.clip_stat import stat_clipseq_duration
+from ..clip import Clip, ClipSeq, ClipIds, MatchedClipIds, MatchedClipIdsSeq
+from .media_map_process import get_sub_mediamap_by_time
+from ..emb import MediaMapEmb, H5pyMediaMapEmb
+from ..general.items import Item, Items
+from ...utils.data_util import pick_subdct
+from ...utils.util import convert_class_attr_to_dict, load_dct_from_file
+
+logger = logging.getLogger(__name__) # pylint: disable=invalid-name
+
+
+__all__ = ["MetaInfo", "MetaInfoList", "MediaMap", "MediaMapSeq"]
+
+
+class MetaInfo(Item):
+ """歌曲、视频等媒体文件级别的元信息"""
+
+ def __init__(
+ self,
+ mediaid=None,
+ media_name=None,
+ media_duration=None,
+ signature=None,
+ media_path: str = None,
+ media_map_path: str = None,
+ start: float = None,
+ end: float = None,
+ ext=None,
+ **kwargs,
+ ):
+ super(MetaInfo).__init__()
+ self.mediaid = mediaid
+ self.media_name = media_name
+ self.media_duration = media_duration
+ self.signature = signature
+ self.media_path = media_path
+ self.media_map_path = media_map_path
+ self.start = start
+ self.end = end
+ self.ext = ext
+ self.__dict__.update(**kwargs)
+ self.preprocess()
+
+ def preprocess(self):
+ self.set_start_end()
+
+ def set_start_end(self):
+ if self.start is None:
+ self.start = 0
+ elif self.start >= 0 and self.start <= 1:
+ self.start = self.start * self.media_duration
+
+ if self.end is None:
+ self.end = self.media_duration
+ elif self.end >= 0 and self.end <= 1:
+ self.end = self.end * self.media_duration
+
+
+class MetaInfoList(Items):
+ """媒体元数据列表,主要用于多歌曲、多视频剪辑时存储原单一媒体文件的元信息"""
+
+ def __init__(self, items: Union[MetaInfo, List[MetaInfo]] = None):
+ """
+ Args:
+ meta_info_list (list, optional): MetaInfo 列表. Defaults to None.
+ """
+ if items is None:
+ items = []
+ else:
+ items = items if isinstance(items, list) else [items]
+ super().__init__(items)
+ self.meta_info_list = self.items
+ if len(self.items) > 1:
+ self.reset()
+
+ def __len__(self):
+ return len(self.meta_info_list)
+
+ def __getitem__(self, i) -> MetaInfo:
+ return self.meta_info_list[i]
+
+ @property
+ def groupnum(self) -> int:
+ return len(self.meta_info_list)
+
+
+class MediaMap(object):
+ """媒体信息基类,也可以理解为音乐谱面、视觉谱面、音游谱面基类。主要有 MetaInfo、MetaInfoList、ClipSeq 属性。
+ 不同的媒体信息的 属性 类会有不同,所以在类变量里做定义。如有变化,可以定义自己的属性类。
+ """
+
+ def __init__(
+ self,
+ meta_info: MetaInfo = None,
+ clipseq: ClipSeq = None,
+ stageseq: ClipSeq = None,
+ frameseq: ClipSeq = None,
+ emb: H5pyMediaMapEmb = None,
+ **kwargs,
+ ):
+ """用于存储media的相关信息,media_info是json或直接字典
+
+ Args:
+ meta_info (MetaInfo): 当sub_meta_info不为None时, meta_info由sub_meta_info整合而成
+ sub_meta_info (None or [MetaInfo]): 当多个MediaInfo拼在一起时,用于保留子MediaInfo的信息
+ clipseq (ClipSeq): # 按照clipidx排序;
+ stageseq (ClipSeq): # 比 clipseq 更高纬度的片段划分,例如clips是镜头分割,stages是scenes分割;clips是关键点分割,stages是结构分割;
+ frameseq (ClipSeq): # 比 clipseq 更低纬度的片段划分
+ kwargs (dict, optional): 所有相关信息都会作为 meta_info 的补充,赋值到 meta_info 中
+ """
+ self.meta_info = meta_info
+ self.clipseq = clipseq
+ self.frameseq = frameseq
+ self.stageseq = stageseq
+ self.emb = emb
+ self.meta_info.__dict__.update(**kwargs)
+ self.preprocess()
+
+ def preprocess(
+ self,
+ ):
+ if (self.meta_info.start != 0 and self.meta_info.start is not None) or (
+ self.meta_info.end is not None and self.meta_info.end == 1
+ ):
+ self.drop_head_and_tail()
+ self.meta_info.preprocess()
+ if self.clipseq is not None:
+ self.clipseq.preprocess()
+ if self.frameseq is not None:
+ self.frameseq.preprocess()
+ if self.stageseq is not None:
+ self.stageseq.preprocess()
+ self.clip_start_idx = self.clipseq[0].clipid
+ self.clip_end_idx = self.clipseq[-1].clipid
+
+ def drop_head_and_tail(self) -> MediaMap:
+ self.clipseq = get_subseq_by_time(
+ self.clipseq,
+ start=self.meta_info.start,
+ end=self.meta_info.end,
+ duration=self.meta_info.media_duration,
+ )
+ if self.stageseq is not None:
+ self.stageseq = get_subseq_by_time(
+ self.clipseq,
+ start=self.meta_info.start,
+ end=self.meta_info.end,
+ duration=self.meta_info.media_duration,
+ )
+
+ def set_clip_value(self, k, v):
+ """为clipseq中的每个clip赋值,
+
+ Args:
+ k (str): Clip中字段名
+ v (any): Clip中字段值
+ """
+ self.clipseq.set_clip_value(k, v)
+
+ def spread_metainfo_2_clip(
+ self, target_keys: List = None, ignored_keys: List = None
+ ) -> None:
+ """将metainfo中的信息赋值到clip中,便于clip后面做相关处理。
+
+ Args:
+ target_keys ([str]): 待赋值的目标字段
+ """
+ dst = pick_subdct(
+ self.meta_info.__dict__, target_keys=target_keys, ignored_keys=ignored_keys
+ )
+ for k, v in dst.items():
+ self.set_clip_value(k, v)
+
+ def spread_parameters(self, target_keys: list, ignored_keys) -> None:
+ """元数据广播,将 media_info 的元数据广播到 clip 中,以及调用 clip 自己的参数传播。"""
+ self.spread_metainfo_2_clip(target_keys=target_keys, ignored_keys=ignored_keys)
+ for clip in self.clipseq:
+ clip.spread_parameters()
+
+ def stat(
+ self,
+ ):
+ """统计 media_info 相关信息,便于了解,目前统计内容有
+ 1. 片段长度
+ """
+ self.stat_clipseq_duration()
+
+ def stat_clipseq_duration(
+ self,
+ ):
+ hist, bin_edges = stat_clipseq_duration(self.clipseq)
+ print(self.media_name, "bin_edges", bin_edges)
+ print(self.media_name, "hist", hist)
+
+ def to_dct(self, target_keys: list = None, ignored_keys: list = None):
+ raise NotImplementedError
+
+ @property
+ def duration(
+ self,
+ ):
+ return self.clipseq.duration
+
+ @property
+ def mediaid(
+ self,
+ ):
+ return self.meta_info.mediaid
+
+ @property
+ def media_name(
+ self,
+ ):
+ return self.meta_info.media_name
+
+ @property
+ def duration_seq_emb(self):
+ return self.clipseq.duration_seq_emb
+
+ @property
+ def timestamp_seq_emb(self):
+ return self.clipseq.timestamp_seq_emb
+
+ @property
+ def rela_timestamp_seq_emb(self):
+ return self.clipseq.rela_timestamp_seq_emb
+
+ def get_emb(self, key, idx=None):
+ # TODO: 待修改为更通用的形式
+ if idx is None:
+ idx = range(self.clip_start_idx, self.clip_end_idx + 1)
+ elif isinstance(idx, int):
+ idx += self.clip_start_idx
+ elif isinstance(idx, Iterable):
+ idx = [x + self.clip_start_idx for x in idx]
+ else:
+ raise ValueError(
+ f"idx only support None, int, Iterable, but given {idx},type is {type(idx)}"
+ )
+ return self.emb.get_value(key, idx=idx)
+
+ def get_meta_info_attr(self, key: str) -> Any:
+ return getattr(self.meta_info, key)
+
+ @classmethod
+ def from_json_path(
+ cls, path: Dict, emb_path: str, media_path: str = None, **kwargs
+ ) -> MediaMap:
+ media_map = load_dct_from_file(path)
+ emb = H5pyMediaMapEmb(emb_path)
+ return cls.from_data(media_map, emb=emb, media_path=media_path, **kwargs)
+
+
+class MediaMapSeq(Items):
+ def __init__(self, maps: List[MediaMap]) -> None:
+ super().__init__(maps)
+ self.maps = self.data
+ self.preprocess()
+ self.each_map_clipseq_num = [len(m.clipseq) for m in self.maps]
+ self.each_map_clipseq_num_cumsum = np.cumsum([0] + self.each_map_clipseq_num)
+
+ @property
+ def clipseq(self):
+ clipseq = []
+ for m in self.maps:
+ clipseq.extend(m.clipseq.data)
+ return type(self.maps[0].clipseq)(clipseq)
+
+ @property
+ def stagesseq(self):
+ stagesseq = []
+ for m in self.maps:
+ stagesseq.extend(m.stagesseq.data)
+ return type(self.maps[0].stagesseq)(stagesseq)
+
+ @property
+ def frameseq(self):
+ frameseq = []
+ for m in self.maps:
+ frameseq.extend(m.frameseq.data)
+ return type(self.maps[0].frameseq)(frameseq)
+
+ def preprocess(self):
+ for m in self.maps:
+ m.preprocess()
+
+ def _combine_str(
+ self,
+ attrs: List[str],
+ sep: str = "|",
+ single_maxlen: int = 10,
+ total_max_length: int = 60,
+ ) -> str:
+ return sep.join([str(attr)[:single_maxlen] for attr in attrs])[
+ :total_max_length
+ ]
+
+ def get_meta_info_attr(self, key: str, func: Callable) -> Any:
+ attrs = [m.get_meta_info_attr(key) for m in self.maps]
+ return func(attrs)
+
+ @property
+ def mediaid(self) -> str:
+ return self.get_meta_info_attr(key="mediaid", func=self._combine_str)
+
+ @property
+ def media_name(self) -> str:
+ return self.get_meta_info_attr(key="media_name", func=self._combine_str)
+
+ @property
+ def duration(self) -> float:
+ return sum([m.duration for m in self.maps])
+
+ @property
+ def media_duration(self) -> float:
+ return self.get_meta_info_attr(key="media_duration", func=sum)
+
+ @classmethod
+ def from_json_paths(
+ cls,
+ media_map_class: MediaMap,
+ media_paths: str,
+ media_map_paths: str,
+ emb_paths: str,
+ **kwargs,
+ ) -> MediaMapSeq:
+ map_seq = [
+ media_map_class.from_json_path(
+ path=media_map_paths[i],
+ emb_path=emb_paths[i],
+ media_path=media_paths[i],
+ **kwargs,
+ )
+ for i in range(len(media_map_paths))
+ ]
+ return cls(map_seq)
+
+ # TODO: implement mapseq stat func
+ def stat(self):
+ for m in self.maps:
+ m.stat()
+
+ def _combine_embs(self, embs):
+ return np.concatenate(embs, axis=0)
+
+ @property
+ def duration_seq_emb(self):
+ embs = [m.duration_seq_emb for m in self.maps]
+ return self._combine_embs(embs)
+
+ @property
+ def timestamp_seq_emb(self):
+ embs = [m.timestamp_seq_emb for m in self.maps]
+ return self._combine_embs(embs)
+
+ @property
+ def rela_timestamp_seq_emb(self):
+ embs = [m.rela_timestamp_seq_emb for m in self.maps]
+ return self._combine_embs(embs)
+
+ def clip_idx_2_map_idx(self, idx):
+ target_map_idx = bisect.bisect_right(self.each_map_clipseq_num_cumsum, idx)
+ target_map_idx = min(max(0, target_map_idx - 1), len(self.maps) - 1)
+ target_map_clip_idx = idx - self.each_map_clipseq_num_cumsum[target_map_idx]
+ return target_map_idx, target_map_clip_idx
+
+ def get_emb(self, key: str, idx: Union[None, int, List[int]] = None) -> np.array:
+ if idx is None:
+ embs = [m.get_emb(key, idx=idx) for m in self.maps]
+ else:
+ if not isinstance(idx, list):
+ idx = [idx]
+ embs = []
+ for c_idx in idx:
+ target_map_idx, target_map_clip_idx = self.clip_idx_2_map_idx(c_idx)
+ embs.append(
+ self.maps[target_map_idx].get_emb(key, int(target_map_clip_idx))
+ )
+ if len(embs) == 1:
+ return embs[0]
+ else:
+ return self._combine_embs(embs)
diff --git a/MuseV/MMCM/mmcm/data/media_map/media_map_process.py b/MuseV/MMCM/mmcm/data/media_map/media_map_process.py
new file mode 100755
index 0000000000000000000000000000000000000000..532c4a8bf48e80e127606325386deb763296db42
--- /dev/null
+++ b/MuseV/MMCM/mmcm/data/media_map/media_map_process.py
@@ -0,0 +1,72 @@
+from __future__ import annotations
+
+from typing import List, Union, TYPE_CHECKING
+from ..clip.clip_process import (
+ get_subseq_by_time,
+ find_time_by_stage,
+
+)
+if TYPE_CHECKING:
+ from ..media_map.media_map import MediaMap
+ from ..clip import Clip, ClipSeq
+
+
+__all__ =[
+ "get_sub_mediamap_by_clip_idx",
+ "get_sub_mediamap_by_stage",
+ "get_sub_mediamap_by_time",
+]
+
+
+def get_sub_mediamap_by_time(media_map:MediaMap, start: int=0, end:int=1, eps=1e-2) -> MediaMap:
+ """获取子片段序列,同时更新media_map中的相关信息
+
+ Args:
+ media_map (MediaInfo): _description_
+ start (float): 开始时间
+ end (float): 结束时间
+
+ Returns:
+ _type_: _description_
+ """
+ if start < 1:
+ start = media_map.duration * start
+ if end is None:
+ end = media_map.meta_info.media_duration
+ elif end <= 1:
+ end = media_map.duration * end
+ media_map.meta_info.start = start
+ media_map.meta_info.end = end
+ media_map.clipseq = get_subseq_by_time(
+ media_map.clipseq,
+ start=start,
+ end=end,
+ )
+ if media_map.stageseq is not None:
+ media_map.stageseq = get_subseq_by_time(media_map.stageseq, start=start, end=end)
+ return media_map
+
+
+def get_sub_mediamap_by_clip_idx(media_map: MediaMap, start: int=None, end: int=None) -> MediaMap:
+ """不仅获取子片段序列,还要更新media_map中的相关信息
+
+ Args:
+ media_map (_type_): _description_
+ """
+ if start is None:
+ start = 0
+ if end is None:
+ end = -1
+ start = media_map.clipseq[start].time_start
+ end = media_map.clipseq[end].time_end
+ media_map = get_sub_mediamap_by_time(media_map=media_map, start=start, end=end)
+ return media_map
+
+
+def get_sub_mediamap_by_stage(media_map: MediaMap, stages: Union[str, List[str]]) -> MediaMap:
+ if isinstance(stages, List):
+ stages = [stages]
+ start, _ = find_time_by_stage(media_map.stageseq, stages[0])
+ _, end = find_time_by_stage(media_map.stageseq, stages[-1])
+ media_map = get_sub_mediamap_by_time(media_map=media_map, start=start, end=end)
+ return media_map
diff --git a/MuseV/MMCM/mmcm/music/__init__.py b/MuseV/MMCM/mmcm/music/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..bc39f53ceec0dc114bbd1d0bdf4f71db99599122
--- /dev/null
+++ b/MuseV/MMCM/mmcm/music/__init__.py
@@ -0,0 +1,6 @@
+from .music_map.music_map import MusicMap, MusicMapSeq
+from .music_map.music_clip import MusicClip, MusicClipSeq
+from .music_map.meta_info import MusicMetaInfo
+from .music_map.load_music_map import load_music_map
+
+from .utils.path_util import get_audio_path_dct
diff --git a/MuseV/MMCM/mmcm/music/music_map/__init__.py b/MuseV/MMCM/mmcm/music/music_map/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/music/music_map/beat_map.py b/MuseV/MMCM/mmcm/music/music_map/beat_map.py
new file mode 100755
index 0000000000000000000000000000000000000000..e671f75d8e24dcb3b62d63e573446d7fcacb17af
--- /dev/null
+++ b/MuseV/MMCM/mmcm/music/music_map/beat_map.py
@@ -0,0 +1,82 @@
+import numpy as np
+
+from librosa.core.audio import get_duration
+
+from ...data.clip.clip_process import insert_endclip, insert_startclip
+
+from .clip_process import filter_clipseq_target_point
+from .music_clip import MusicClip, MusicClipSeq
+
+
+def beatnet2TMEType(beat: np.array, duration: float) -> MusicClipSeq:
+ """conver beatnet beat to tme beat type
+
+ Args:
+ beat (np.array): Nx2,
+ 1st column is time,
+ 2rd is type,
+ 0, end point
+ 1, strong beat
+ 2,3,4 weak beat
+ -1 lyric
+ duration (float): audio time length
+ Returns:
+ MusicClipSeq:
+ """
+ n = len(beat)
+ beat = np.insert(beat, 0, 0, axis=0)
+ beat = np.insert(beat, n + 1, [duration, 0], axis=0)
+ clips = []
+ for i in range(n + 1):
+ beat_type = int(beat[i + 1, 1])
+ clip = MusicClip(
+ time_start=beat[i, 0], # 开始时间
+ duration=round(beat[i + 1, 0] - beat[i, 0], 3), # 片段持续时间
+ clipid=i, # 片段序号,
+ timepoint_type=beat_type,
+ )
+ clips.append(clip)
+ clipseq = MusicClipSeq(clips=clips)
+ return clipseq
+
+
+def generate_beatseq_with_beatnet(audio_path: str) -> np.array:
+ """使用beatnet生成beat序列
+
+ Args:
+ audio_path (str):
+ Returns:
+ np.array: beat序列 Nx2,
+ 1st column is time,
+ 2rd is type,
+ 0, end point
+ 1, strong beat
+ 2,3,4 weak beat
+ """
+ from BeatNet.BeatNet import BeatNet
+
+ estimator = BeatNet(1, mode="offline", inference_model="DBN", plot=[], thread=False)
+ output = estimator.process(audio_path=audio_path)
+ return output
+
+
+def generate_music_map_with_beatnet(
+ audio_path: str, target: list = [0, 1]
+) -> MusicClipSeq:
+ """使用beatnet生成beat MusicClipseq
+
+ Args:
+ audio_path (str):
+ target (list, optional): 只保留相应的拍点. Defaults to [0, 1].
+
+ Returns:
+ MusicClipSeq: 返回的beat序列
+ beat: np.array, 原始的beat检测结果
+ """
+ output = generate_beatseq_with_beatnet(audio_path)
+ duration = get_duration(filename=audio_path)
+ clipseq = beatnet2TMEType(output, duration)
+ clipseq = insert_startclip(clipseq)
+ clipseq = insert_endclip(clipseq, duration)
+ clipseq = filter_clipseq_target_point(clipseq, target=target)
+ return clipseq, output
diff --git a/MuseV/MMCM/mmcm/music/music_map/clip_process.py b/MuseV/MMCM/mmcm/music/music_map/clip_process.py
new file mode 100755
index 0000000000000000000000000000000000000000..b82705af9807495c00c457c52b0744963f00d422
--- /dev/null
+++ b/MuseV/MMCM/mmcm/music/music_map/clip_process.py
@@ -0,0 +1,196 @@
+from __future__ import annotations
+from typing import TYPE_CHECKING, Dict, List
+
+import numpy as np
+
+from ...data.clip.clip_process import find_idx_by_time, reset_clipseq_id
+from ...data.clip.clip_fusion import fuse_clips
+from ...utils.util import merge_list_continuous_same_element
+
+if TYPE_CHECKING:
+ from .music_clip import MusicClip, MusicClipSeq
+ from .music_map import MusicMap, MusicMapSeq
+
+
+# TODO: 待和clip操作做整合
+def music_clip_is_short(clip: MusicClip, th: float = 3) -> bool:
+ """判断音乐片段是否过短
+
+ Args:
+ clip (MusicClip): 待判断的音乐片段
+ th (float, optional): 短篇的参数. Defaults to 3.
+
+ Returns:
+ bool: 是或不是 短片段
+ """
+ if clip.duration < th:
+ return False
+ else:
+ return True
+
+
+def music_clip_timepoint_is_target(clip: MusicClip, target: list = [-1, 1, 0]) -> bool:
+ """音乐片段的关键点类型是否是目标关键点
+ 关键点类型暂时参考:VideoMashup/videomashup/data_structure/music_data_structure.py
+ Args:
+ clip (MusicClip): 待判断的音乐片段
+ target (list, optional): 目标关键点类别. Defaults to [-1, 1, 0].
+
+ Returns:
+ bool: 是还是不是
+ """
+ timepoint = clip.timepoint_type
+ if isinstance(timepoint, int):
+ timepoint = {timepoint}
+ else:
+ timepoint = {int(x) for x in timepoint.split("_")}
+ if timepoint & set(target):
+ return True
+ else:
+ return False
+
+
+def filter_clipseq_target_point(
+ clipseq: MusicClipSeq, target: list = [-1, 1, 0]
+) -> MusicClipSeq:
+ """删除目标关键点之外的点,对相应的片段做融合
+
+ Args:
+ clipseq (MusicClipSeq): 待处理的音乐片段序列
+ target (list, optional): 保留的目标关键点. Defaults to [-1, 1, 0].
+
+ Returns:
+ MusicClipSeq: 处理后的音乐片段序列
+ """
+ n_clipseq = len(clipseq)
+ if n_clipseq == 1:
+ return clipseq
+ newclipseq = []
+ start_clip = clipseq[0]
+ if music_clip_timepoint_is_target(start_clip, target=target):
+ has_start_clip = True
+ else:
+ has_start_clip = False
+ i = 1
+ while i <= n_clipseq - 1:
+ clip = clipseq[i]
+ start_clip_is_target = music_clip_timepoint_is_target(start_clip, target=target)
+ next_clip_is_target = music_clip_timepoint_is_target(clip, target=target)
+ # logger.debug("filter_clipseq_target_point: i={},start={}, clip={}".format(i, start_clip["timepoint_type"], clip["timepoint_type"]))
+ # logger.debug("start_clip_is_target: {}, next_clip_is_target {}".format(start_clip_is_target, next_clip_is_target))
+ if not has_start_clip:
+ start_clip = clip
+ has_start_clip = next_clip_is_target
+ else:
+ if start_clip_is_target:
+ has_start_clip = True
+ if next_clip_is_target:
+ newclipseq.append(start_clip)
+ start_clip = clip
+ if i == n_clipseq - 1:
+ newclipseq.append(clip)
+ else:
+ start_clip = fuse_clips(start_clip, clip)
+ if i == n_clipseq - 1:
+ newclipseq.append(start_clip)
+ # logger.debug("filter_clipseq_target_point: fuse {}, {}".format(i, clip["timepoint_type"]))
+ else:
+ start_clip = clip
+ i += 1
+ newclipseq = reset_clipseq_id(newclipseq)
+ return newclipseq
+
+
+def merge_musicclip_into_clipseq(
+ clip: MusicClipSeq, clipseq: MusicClip, th: float = 1
+) -> MusicClipSeq:
+ """给clipseq插入一个新的音乐片段,会根据插入后片段是否过短来判断。
+
+ Args:
+ clip (MusicClipSeq): 要插入的音乐片段
+ clipseq (MusicClip): 待插入的音乐片段序列
+ th (float, optional): 插入后如果受影响的片段长度过短,则放弃插入. Defaults to 1.
+
+ Returns:
+ MusicClipSeq: _description_
+ """
+ n_clipseq = len(clipseq)
+ clip_time = clip.time_start
+ idx = find_idx_by_time(clipseq, clip_time)
+ last_clip_time_start = clipseq[idx].time_start
+ next_clip_time_start = clipseq[idx].time_start + clipseq[idx].duration
+ last_clip_time_delta = clip_time - last_clip_time_start
+ clip_duration = next_clip_time_start - clip_time
+ # TODO: 副歌片段改变th参数来提升音符密度,暂不使用,等待音游谱面
+ # TODO: 待抽离独立的业务逻辑为单独的函数
+ # 只针对副歌片段插入关键点
+ if clipseq[idx].text is None or (
+ clipseq[idx].text is not None
+ and clipseq[idx].stage is not None
+ and "C" in clipseq[idx].stage
+ ):
+ if (last_clip_time_delta > th) and (clip_duration > th):
+ clip.duration = clip_duration
+ clipseq[idx].duration = last_clip_time_delta
+ clipseq.insert(idx + 1, clip)
+ clipseq = reset_clipseq_id(clipseq)
+ return clipseq
+
+
+def merge_music_clipseq(clipseq1: MusicClipSeq, clipseq2: MusicClipSeq) -> MusicClipSeq:
+ """将片段序列clipseq2融合到音乐片段序列clipseq1中。融合过程也会判断新片段长度。
+
+ Args:
+ clipseq1 (MusicClipSeq): 要融合的目标音乐片段序列
+ clipseq2 (MusicClipSeq): 待融合的音乐片段序列
+
+ Returns:
+ MusicClipSeq: 融合后的音乐片段序列
+ """
+ while len(clipseq2) > 0:
+ clip = clipseq2[0]
+ clipseq1 = merge_musicclip_into_clipseq(clip, clipseq1)
+ del clipseq2[0]
+ return clipseq1
+
+
+def merge_lyricseq_beatseq(
+ lyric_clipseq: MusicClipSeq, beat_clipseq: MusicClipSeq
+) -> MusicClipSeq:
+ """将beat序列融合到歌词序列中
+
+ Args:
+ lyric_clipseq (MusicClipSeq): 歌词序列
+ beat_clipseq (MusicClipSeq): beat序列
+
+ Returns:
+ MusicClipSeq: 融合后的音乐片段序列
+ """
+ newclipseq = merge_music_clipseq(lyric_clipseq, beat_clipseq)
+ # for i, clip in enumerate(newclipseq):
+ # logger.debug("i={}, time_start={}, duration={}".format(i, clip.time_start, clip.duration))
+ return newclipseq
+
+
+def get_stageseq_from_clipseq(clipseq: MusicClipSeq) -> List[Dict]:
+ """对clip.stage做近邻融合,返回总时间
+
+ Returns:
+ List[Dict]: 根据音乐结构进行分割的片段序列
+ """
+ stages = [clip.stage for clip in clipseq]
+ merge_stages_idx = merge_list_continuous_same_element(stages)
+ merge_stages = []
+ for n, stages_idx in enumerate(merge_stages_idx):
+ dct = {
+ "clipid": n,
+ "time_start": clipseq[stages_idx["start"]].time_start,
+ "time_end": clipseq[stages_idx["end"]].time_end,
+ "stage": stages_idx["element"],
+ "original_clipid": list(
+ range(stages_idx["start"], stages_idx["end"] + 1)
+ ), # mss都是左闭、 右闭的方式
+ }
+ dct["duration"] = dct["time_end"] - dct["time_start"]
+ merge_stages.append(dct)
+ return merge_stages
diff --git a/MuseV/MMCM/mmcm/music/music_map/convert_type.py b/MuseV/MMCM/mmcm/music/music_map/convert_type.py
new file mode 100755
index 0000000000000000000000000000000000000000..eeab5f4f847c76dcd20b907afcfd35d208b98ea2
--- /dev/null
+++ b/MuseV/MMCM/mmcm/music/music_map/convert_type.py
@@ -0,0 +1,57 @@
+from ...data.clip.clip_process import (
+ insert_startclip,
+ insert_endclip,
+ reset_clipseq_id,
+)
+
+from .music_clip import MusicClip, MusicClipSeq
+
+
+def read_osu_hitobjs(path: str) -> list:
+ """读取osu的音游谱面
+
+ Args:
+ path (str): 谱面低质
+
+ Returns:
+ list: 只包含HitObjects的行字符串信息
+ """
+ lines = []
+ is_hit_info_start = False
+ with open(path, "r") as f:
+ for line in f:
+ if is_hit_info_start:
+ lines.append(line.strip())
+ if "[HitObjects]" in line:
+ is_hit_info_start = True
+ return lines
+
+
+def osu2itech(src: list, duration: float = None) -> MusicClipSeq:
+ """将osu的音游谱面转换为我们的目标格式
+
+ Args:
+ src (list): 音游谱面路径或者是读取的目标行字符串列表
+ duration (float, optional): 歌曲长度. Defaults to None.
+
+ Returns:
+ MusicClipSeq: 音乐片段序列
+ """
+ if isinstance(src, str):
+ src = read_osu_hitobjs(src)
+ timepoints = [float(line.split(",")[2]) for line in src]
+ clips = []
+ for i in range(len(timepoints) - 1):
+ clip = MusicClip(
+ time_start=round(timepoints[i] / 1000, 3),
+ timepoint_type=0,
+ duration=round((timepoints[i + 1] - timepoints[i]) / 1000, 3),
+ clipid=i,
+ )
+ clips.append(clip)
+ if len(clips) > 0:
+ clips = insert_startclip(clips)
+ if duration is not None:
+ clips = insert_endclip(clips, duration=duration)
+ clips = reset_clipseq_id(clips)
+ return MusicClipSeq(clips)
diff --git a/MuseV/MMCM/mmcm/music/music_map/load_music_map.py b/MuseV/MMCM/mmcm/music/music_map/load_music_map.py
new file mode 100755
index 0000000000000000000000000000000000000000..3d3c5eab123ad33649dd43a75efe04c508f856b1
--- /dev/null
+++ b/MuseV/MMCM/mmcm/music/music_map/load_music_map.py
@@ -0,0 +1,38 @@
+
+
+from typing import List
+
+from .music_map import MusicMap, MusicMapSeq
+
+
+def load_music_map(
+ music_map_paths,
+ music_paths,
+ emb_paths,
+ start: float=None,
+ end: None=None,
+ target_stages: List[str] = None,
+ **kwargs,
+):
+ """读取视频谱面,转化成MusicInfo。当 musicinfo_path_lst 为列表时,表示多歌曲
+
+ Args:
+ musicinfo_path_lst (str or [str]): 视频谱面路径文件列表
+ music_path_lst (str or [str]): 视频文件路径文件列表,须与musicinfo_path_lst等长度
+
+
+ Returns:
+ MusicInfo: 视频谱面信息
+ """
+ dct ={
+ "start": start,
+ "end": end,
+ "target_stages": target_stages,
+ }
+ if isinstance(music_map_paths, list):
+ music_map = MusicMapSeq.from_json_paths(media_map_class=MusicMapSeq, media_paths=music_paths, media_map_paths=music_map_paths, emb_paths=emb_paths, **dct, **kwargs)
+ if len(music_map) == 1:
+ music_map = music_map[0]
+ else:
+ music_map = MusicMap.from_json_path(path=music_map_paths, emb_path=emb_paths, media_path=music_paths, **dct, **kwargs)
+ return music_map
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/music/music_map/lyric_map.py b/MuseV/MMCM/mmcm/music/music_map/lyric_map.py
new file mode 100755
index 0000000000000000000000000000000000000000..0d7e7bf8cdd723c640c5ddc505c1c7e8c2267dcf
--- /dev/null
+++ b/MuseV/MMCM/mmcm/music/music_map/lyric_map.py
@@ -0,0 +1,149 @@
+import numpy as np
+from sklearn.preprocessing import normalize, minmax_scale
+from scipy.signal import savgol_filter
+
+# TODO:待更新音乐谱面的类信息
+from ...data.clip.clip_process import (
+ complete_clipseq,
+ find_idx_by_clip,
+ insert_endclip,
+ insert_startclip,
+ reset_clipseq_id,
+)
+
+from .music_clip import Clip, ClipSeq
+from .music_clip import MusicClipSeq
+from .music_map import MusicMap
+
+
+def generate_lyric_map(
+ path: str, duration: float = None, gap_th: float = 2
+) -> MusicClipSeq:
+ """从歌词文件中生成音乐谱面
+
+ Args:
+ path (str): 歌词文件路径
+ duration (float, optional): 歌词对应音频的总时长. Defaults to None.
+ gap_th (float, optional): 歌词中间的空白部分是否融合到上一个片段中. Defaults to 3.
+
+ Returns:
+ MusicClipSeq: 以歌词文件生成的音乐谱面
+ """
+ from ..music_map.lyric_process import lyricfile2musicinfo
+
+ lyric_info = lyricfile2musicinfo(path)
+ lyric_info = MusicMap(lyric_info, duration=duration)
+ clipseq = lyric_info.clipseq
+ lyric_info.meta_info.duration = duration
+ # set part of nonlyric as clip whose timepoint is 0
+ for i in range(len(clipseq)):
+ clipseq[i].timepoint_type = -1
+ lyric_info.clipseq = complete_clipseq(
+ clipseq=clipseq, duration=duration, gap_th=gap_th
+ )
+ return lyric_info
+
+
+def insert_field_2_clipseq(clipseq: ClipSeq, reference: ClipSeq, field: str) -> ClipSeq:
+ """将reference中每个clip的字段信息根据赋给clipseq中最近的clip
+
+ Args:
+ clipseq (ClipSeq): 目标clip序列
+ reference (ClipSeq): 参考clip序列
+ field (str): 目标字段
+
+ Returns:
+ ClipSeq: 更新目标字段新值后的clip序列
+ """
+ for i, clip in enumerate(clipseq):
+ idx = find_idx_by_clip(reference, clip=clip)
+ if idx is not None:
+ if getattr(reference[idx], field) is not None:
+ clipseq[i].__dict__[field] = getattr(reference[idx], field)
+ return clipseq
+
+
+def insert_rythm_2_clipseq(clipseq, reference):
+ """参考MSS字段的结构信息设置rythm信息。目前策略非常简单,主歌(Vx)0.25,副歌(Cx)0.75,其他为None
+
+ Args:
+ clipseq (ClipSeq): 目标clip序列,设置rythm字段
+ reference (ClipSeq): 参考clip序列,参考stage字段
+
+ Returns:
+ ClipSeq: 更新rythm字段新值后的clip序列
+ """
+
+ def stage2rythm(stage):
+ if "V" in stage:
+ return 0.25
+ elif "C" in stage:
+ return 0.75
+ else:
+ return None
+
+ for i, clip in enumerate(clipseq):
+ idx = find_idx_by_clip(reference, clip=clip)
+ if idx is not None:
+ if reference[idx].rythm is not None:
+ clipseq[i].rythm = stage2rythm(reference[idx].stage)
+ return clipseq
+
+
+def insert_rythm_from_clip(clipseq: MusicClipSeq, beat: np.array) -> MusicClipSeq:
+ """给MusicClipSeq中的每个Clip新增节奏信息。目前使用
+ 1. 单位时间内的歌词数量特征, 使用 min-max 归一化到 0 - 1 之间
+ 2. 单位时间内的关键点数量,目前使用beatnet,使用 min-max 归一化到 0 - 1 之间
+ 3. 对1、2中的特征相加,并根据歌曲结构不同进行加权
+ Args:
+ clipseq (MusicClipSeq): 待处理的 MusicClipSeq
+ beat (np.array): beat检测结果,Nx2,,用于结算单位时间内的关键点数。
+ 1st column is time,
+ 2rd is type,
+ 0, end point
+ 1, strong beat
+ 2,3,4 weak beat
+
+ Returns:
+ MusicClipSeq: 新增 rythm 的 MusicClipSeq
+ """
+ mss_cofficient = {
+ "intro": 1.0,
+ "bridge": 1.0,
+ "end": 0.8,
+ "VA": 1.0,
+ "VB": 1.0,
+ "CA": 1.6,
+ "CB": 1.6,
+ }
+ # text_num_per_second
+ text_num_per_second_lst = [clip.tnps for clip in clipseq if clip.tnps != 0]
+ common_tnps = np.min(text_num_per_second_lst)
+ tnps = np.array([clip.tnps if clip.tnps != 0 else common_tnps for clip in clipseq])
+ tnps = minmax_scale(tnps)
+ # beat point _num_per_second
+ beat_pnps = np.zeros(len(clipseq))
+ for i, clip in enumerate(clipseq):
+ time_start = clip.time_start
+ time_end = clip.time_end
+ target_beat = beat[(beat[:, 0] >= time_start) & (beat[:, 0] < time_end)]
+ beat_pnps[i] = len(target_beat) / clip.duration
+ beat_pnps = minmax_scale(beat_pnps)
+
+ # cofficient
+ cofficients = np.array(
+ [
+ mss_cofficient[clip.stage]
+ if clip.stage in mss_cofficient and clip.stage is not None
+ else 1.0
+ for clip in clipseq
+ ]
+ )
+
+ rythm = cofficients * (tnps + beat_pnps)
+ rythm = minmax_scale(rythm)
+ rythm = savgol_filter(rythm, window_length=5, polyorder=3)
+ rythm = minmax_scale(rythm)
+ for i, clip in enumerate(clipseq):
+ clip.dynamic = rythm[i]
+ return clipseq
diff --git a/MuseV/MMCM/mmcm/music/music_map/lyric_process.py b/MuseV/MMCM/mmcm/music/music_map/lyric_process.py
new file mode 100644
index 0000000000000000000000000000000000000000..7d14fa60b4af93b11182945d11aa4e03e4bb70f4
--- /dev/null
+++ b/MuseV/MMCM/mmcm/music/music_map/lyric_process.py
@@ -0,0 +1,515 @@
+from genericpath import isfile
+import re
+import os
+
+from ...text.utils.read_text import read_xml2json
+
+
+# 一个正则表达式非常好用的网站
+# https://regex101.com/r/cW8jA6/2
+
+
+CHINESE_PATTERN = r"[\u4e00-\u9fff]+"
+NOT_CHINESE_PATTERN = r"[^\u4e00-\u9fa5]"
+ENGLISH_CHARACHTER_PATTERN = r"[a-zA-Z]+"
+WORD_PATTERN = r"\w+" # equal to [a-zA-Z0-9_].
+NOT_WORD_PATTERN = r"\W+"
+
+
+def has_target_string(lyric: str, pattern: str) -> bool:
+ """本句歌词是否有目标字符串
+
+ Args:
+ lyric (str):
+ pattern (str): 目标字符串的正则表达式式patteren
+
+ Returns:
+ bool: 有没有目标字符串
+ """
+ matched = re.findall(pattern, lyric)
+ flag = len(matched) > 0
+ return flag
+
+
+def has_chinese_char(lyric: str) -> bool:
+ """是否有中文字符
+
+ Args:
+ lyric (str):
+
+ Returns:
+ bool: 是否有中文字符
+ """
+ return has_target_string(lyric, CHINESE_PATTERN)
+
+
+def has_non_chinese_char(lyric: str) -> bool:
+ """是否有非中文字符,参考https://git.woa.com/innovative_tech/CopyrightGroup/LyricTools/blob/master/lyric_tools/dataProcess.py#L53
+
+ Args:
+ lyric (str):
+
+ Returns:
+ bool: 是否有中文字符
+ """
+ return has_target_string(lyric, NOT_CHINESE_PATTERN)
+
+
+def has_english_alphabet_char(lyric: str) -> bool:
+ """是否有英文字母表字符
+
+ Args:
+ lyric (str):
+
+ Returns:
+ bool:
+ """
+ return has_target_string(lyric, ENGLISH_CHARACHTER_PATTERN)
+
+
+def check_is_lyric_row(lyric: str) -> bool:
+ """该字符串是否是歌词
+
+ Args:
+ lyric (str): 待判断的字符串
+
+ Returns:
+ bool: 该字符串是否是歌词
+ """
+ is_not_lyric = [
+ re.search(r"\[ti[::]?", lyric),
+ re.search(r"\[ar[::]?", lyric),
+ re.search(r"\[al[::]?", lyric),
+ re.search(r"\[by[::]?", lyric),
+ re.search(r"\[offset[::]?", lyric),
+ re.search(r"词[::]?\(\d+,\d+\)[::]?", lyric),
+ re.search(r"曲[::]?\(\d+,\d+\)[::]?", lyric),
+ re.search(r"作\(\d+,\d+\)词[::]?", lyric),
+ re.search(r"作\(\d+,\d+\)曲[::]?", lyric),
+ re.search(r"演\(\d+,\d+\)唱[::]?", lyric),
+ re.search(r"编\(\d+,\d+\)曲[::]?", lyric),
+ re.search(r"吉\(\d+,\d+\)他[::]", lyric),
+ re.search(r"人\(\d+,\d+\)声\(\d+,\d+\)录\(\d+,\d+\)音\(\d+,\d+\)师[::]?", lyric),
+ re.search(r"人\(\d+,\d+\)声\(\d+,\d+\)录\(\d+,\d+\)音\(\d+,\d+\)棚[::]?", lyric),
+ re.search(r"Vocal\s+\(\d+,\d+\)edite[::]?", lyric),
+ re.search(r"混\(\d+,\d+\)音\(\d+,\d+\)/\(\d+,\d+\)母\(\d+,\d+\)带[::]?", lyric),
+ re.search(r"混\(\d+,\d+\)音", lyric),
+ re.search(r"和\(\d+,\d+\)声\(\d+,\d+\)编\(\d+,\d+\)写[::]?", lyric),
+ re.search(
+ r"词\(\d+,\d+\)版\(\d+,\d+\)权\(\d+,\d+\)管\(\d+,\d+\)理\(\d+,\d+\)方[::]?", lyric
+ ),
+ re.search(
+ r"曲\(\d+,\d+\)版\(\d+,\d+\)权\(\d+,\d+\)管\(\d+,\d+\)理\(\d+,\d+\)方[::]?", lyric
+ ),
+ re.search(r"联\(\d+,\d+\)合\(\d+,\d+\)出\(\d+,\d+\)品[::]?", lyric),
+ re.search(r"录\(\d+,\d+\)音\(\d+,\d+\)作\(\d+,\d+\)品", lyric),
+ re.search(
+ r"录\(\d+,\d+\)音\(\d+,\d+\)作\(\d+,\d+\)品\(\d+,\d+\)监\(\d+,\d+\)制[::]?", lyric
+ ),
+ re.search(r"制\(\d+,\d+\)作\(\d+,\d+\)人[::]?", lyric),
+ re.search(r"制\(\d+,\d+\)作\(\d+,\d+\)人[::]?", lyric),
+ re.search(r"不\(\d+,\d+\)得\(\d+,\d+\)翻\(\d+,\d+\)唱", lyric),
+ re.search(r"未\(\d+,\d+\)经\(\d+,\d+\)许\(\d+,\d+\)可", lyric),
+ re.search(r"酷\(\d+,\d+\)狗\(\d+,\d+\)音\(\d+,\d+\)乐", lyric),
+ re.search(r"[::]", lyric),
+ ]
+ is_not_lyric = [x is not None for x in is_not_lyric]
+ is_not_lyric = any(is_not_lyric)
+ is_lyric = not is_not_lyric
+ return is_lyric
+
+
+def lyric2clip(lyric: str) -> dict:
+ """convert a line of lyric into a clip
+ Clip定义可以参考 https://git.woa.com/innovative_tech/VideoMashup/blob/master/videomashup/media/clip.py
+ Args:
+ lyric (str): _description_
+
+ Returns:
+ dict: 转化成Clip 字典
+ """
+ time_str_groups = re.findall(r"\d+,\d+", lyric)
+ line_time_start = round(int(time_str_groups[0].split(",")[0]) / 1000, 3)
+ line_duration = round(int(time_str_groups[0].split(",")[-1]) / 1000, 3)
+ line_end_time = line_time_start + line_duration
+ last_word_time_start = round(int(time_str_groups[-1].split(",")[0]) / 1000, 3)
+ last_word_duration = round(int(time_str_groups[-1].split(",")[-1]) / 1000, 3)
+ last_word_end_time = last_word_time_start + last_word_duration
+ actual_duration = min(line_end_time, last_word_end_time) - line_time_start
+ lyric = re.sub(r"\[\d+,\d+\]", "", lyric)
+
+ # by yuuhong: 把每个字的起始时间点、结束时间点、具体的字拆分出来
+ words_with_timestamp = get_words_with_timestamp(lyric)
+
+ lyric = re.sub(r"\(\d+,\d+\)", "", lyric)
+ dct = {
+ "time_start": line_time_start,
+ "duration": actual_duration,
+ "text": lyric,
+ "original_text": lyric,
+ "timepoint_type": -1,
+ "clips": words_with_timestamp,
+ }
+ return dct
+
+
+# by yuuhong
+# 把一句QRC中的每个字拆分出来
+# lyric示例:漫(17316,178)步(17494,174)走(17668,193)在(17861,183) (18044,0)莎(18044,153)玛(18197,159)丽(18356,176)丹(18532,200)
+def get_words_with_timestamp(lyric):
+ words_with_timestamp = []
+ elements = lyric.split(")")
+ for element in elements:
+ sub_elements = element.split("(")
+ if len(sub_elements) != 2:
+ continue
+ text = sub_elements[0]
+ timestamp = sub_elements[1]
+ if re.match(r"\d+,\d+", timestamp):
+ # 有效时间戳
+ time_start_str = timestamp.split(",")[0]
+ time_start = round(int(time_start_str) / 1000, 3)
+ duration_str = timestamp.split(",")[1]
+ duration = round(int(duration_str) / 1000, 3)
+ clip = {"text": text, "time_start": time_start, "duration": duration}
+ words_with_timestamp.append(clip)
+ return words_with_timestamp
+
+
+def lyric2clips(lyric: str, th: float = 0.75) -> list:
+ """将一句歌词转换为至少1个的clip。拆分主要是针对中文空格拆分,如果拆分后片段过短,也会整句处理。
+ Args:
+ lyric (str): such as [173247,3275]去(173247,403)吗(173649,677) 配(174326,189)吗(174516,593) 这(175108,279)
+ th (float, optional): 后面如果拆分后片段过短,也会整句处理. Defaults to 1.0.
+
+ Returns:
+ list: 歌词Clip序列
+ """
+ # 目前只对中文的一句歌词按照空格拆分,如果是英文空格则整句处理
+ # 后面如果拆分后片段过短,也会整句处理
+ if has_english_alphabet_char(lyric):
+ return [lyric2clip(lyric)]
+ splited_lyric = lyric.split(" ")
+ if len(splited_lyric) == 1:
+ return [lyric2clip(splited_lyric[0])]
+ line_time_str, sub_lyric = re.split(r"]", splited_lyric[0])
+ line_time_groups = re.findall(r"\d+,\d+", line_time_str)
+ line_time_start = round(int(line_time_groups[0].split(",")[0]) / 1000, 3)
+ line_duration = round(int(line_time_groups[0].split(",")[-1]) / 1000, 3)
+ splited_lyric[0] = sub_lyric
+ # 歌词xml都是歌词仅跟着时间,如果有空格 空格也应该是在时间后面,但有时候空格却在字后面、在时间前,因此需要修正
+ # 错误的:[173247,3275]去(173247,403)吗 (173649,677)配(174326,189)吗 (174516,593)这(175108,279)
+ # 错误的:[46122,2082]以(46122,213)身(46335,260)淬(46595,209)炼(46804,268)天(47072,250)地(47322,370)造(47692,341)化 (48033,172)
+ # 修正成:[173247,3275]去(173247,403)吗(173649,677) 配(174326,189)吗(174516,593) 这(175108,279)
+ for i in range(len(splited_lyric)):
+ if splited_lyric[i] == "":
+ del splited_lyric[i]
+ break
+ if splited_lyric[i][-1] != ")":
+ next_lyric_time_start = re.search(
+ r"\(\d+,\d+\)", splited_lyric[i + 1]
+ ).group(0)
+ splited_lyric[i] += next_lyric_time_start
+ splited_lyric[i + 1] = re.sub(
+ next_lyric_time_start, "", splited_lyric[i + 1]
+ )
+ splited_lyric[i + 1] = re.sub("\(\)", "", splited_lyric[i + 1])
+ lyric_text = re.sub(r"\[\d+,\d+\]", "", lyric)
+ lyric_text = re.sub(r"\(\d+,\d+\)", "", lyric_text)
+ clips = []
+ has_short_clip = False
+ for sub_lyric in splited_lyric:
+ sub_lyric_groups = re.findall(r"\d+,\d+", sub_lyric)
+ sub_lyric_1st_word_time_start = round(
+ int(sub_lyric_groups[0].split(",")[0]) / 1000, 3
+ )
+ sub_lyric_last_word_time_start = round(
+ int(sub_lyric_groups[-1].split(",")[0]) / 1000, 3
+ )
+ sub_lyric_last_word_duration = round(
+ int(sub_lyric_groups[-1].split(",")[-1]) / 1000, 3
+ )
+ sub_lyric_last_word_time_end = (
+ sub_lyric_last_word_time_start + sub_lyric_last_word_duration
+ )
+ sub_lyric_duration = (
+ sub_lyric_last_word_time_end - sub_lyric_1st_word_time_start
+ )
+ if sub_lyric_duration <= th:
+ has_short_clip = True
+ break
+ sub_lyric_text = re.sub(r"\[\d+,\d+\]", "", sub_lyric)
+ sub_lyric_text = re.sub(r"\(\d+,\d+\)", "", sub_lyric_text)
+ # 使用原始lyric,而不是sub_lyric_text 主要是保留相关clip的歌词信息,便于语义连续
+ dct = {
+ "time_start": sub_lyric_1st_word_time_start,
+ "duration": sub_lyric_duration,
+ "text": sub_lyric_text,
+ "original_text": lyric_text,
+ "timepoint_type": -1,
+ }
+ clips.append(dct)
+ if has_short_clip:
+ clips = [lyric2clip(lyric)]
+ return clips
+
+
+def is_songname(lyric: str) -> bool:
+ """是否是歌名,歌名文本含有ti, 如[ti:霍元甲 (《霍元甲》电影主题曲)]
+
+ Args:
+ lyric (str):
+
+ Returns:
+ bool:
+ """
+ return has_target_string(lyric, r"\[ti[::]?")
+
+
+def get_songname(lyric: str) -> str:
+ """获取文本中的歌名,输入必须类似[ti:霍元甲 (《霍元甲》电影主题曲)]
+
+ Args:
+ lyric (str): 含有歌名的QRC文本行
+
+ Returns:
+ str: 歌名
+ """
+ return lyric.split("(")[0][4:-1]
+
+
+def is_album(lyric: str) -> bool:
+ """是否含有专辑名,文本必须类似[al:霍元甲]
+
+ Args:
+ lyric (str): _description_
+
+ Returns:
+ bool: _description_
+ """
+
+ return has_target_string(lyric, r"\[al[::]?")
+
+
+def get_album(lyric: str) -> str:
+ """提取专辑名,文本必须类似[al:霍元甲]
+
+
+ Args:
+ lyric (str): 含有专辑名的QRC文本行
+
+ Returns:
+ str: 专辑名
+ """
+ return lyric[4:-1]
+
+
+def is_singer(lyric: str) -> bool:
+ """是否有歌手名,目标文本类似 [ar:周杰伦]
+
+ Args:
+ lyric (str): _description_
+
+ Returns:
+ bool: _description_
+ """
+ return has_target_string(lyric, r"\[ar[::]?")
+
+
+def get_singer(lyric: str) -> str:
+ """提取歌手信息,文本必须类似[ar:周杰伦]
+
+ Args:
+ lyric (str): 含有歌手名的QRC文本行
+
+ Returns:
+ str: 歌手名
+ """
+ return lyric[4:-1]
+
+
+def lyric2musicinfo(lyric: str) -> dict:
+ """convert lyric content from str into musicinfo, a dict
+ 参考https://git.woa.com/innovative_tech/VideoMashup/blob/master/videomashup/media/media_info.py#L19
+ {
+ "meta_info": {},
+ "sub_meta_info": [],
+ "clips": [
+ clip
+ ]
+ }
+
+ Args:
+ lyric (str): 来自QRC的歌词字符串
+
+ Returns:
+ musicinfo: 音乐谱面字典,https://git.woa.com/innovative_tech/VideoMashup/blob/master/videomashup/media/media_info.py#L19
+ """
+ lyrics = lyric["QrcInfos"]["LyricInfo"]["Lyric_1"]["@LyricContent"]
+ musicinfo = {
+ "meta_info": {
+ "mediaid": None,
+ "media_name": None,
+ "singer": None,
+ },
+ "sub_meata_info": {},
+ "clips": [],
+ }
+ # lyrics = [line.strip() for line in re.split(r"[\t\n\s+]", lyrics)]
+ lyrics = ["[" + line.strip() for line in re.split(r"\[", lyrics)]
+ next_is_title_row = False
+ lyric_clips = []
+ for line in lyrics:
+ if is_songname(line):
+ musicinfo["meta_info"]["media_name"] = get_songname(line)
+ continue
+ if is_singer(line):
+ musicinfo["meta_info"]["singer"] = get_singer(line)
+ continue
+ if is_album(line):
+ musicinfo["meta_info"]["album"] = get_album(line)
+ continue
+ is_lyric_row = check_is_lyric_row(line)
+ if next_is_title_row:
+ next_is_title_row = False
+ continue
+ # remove tille row
+ if not next_is_title_row and re.search(r"\[offset[::]", line):
+ next_is_title_row = True
+ if is_lyric_row and re.match(r"\[\d+,\d+\]", line):
+ lyric_clip = lyric2clip(line)
+ lyric_clips.append(lyric_clip)
+ clips = lyric2clips(line)
+ musicinfo["clips"].extend(clips)
+ musicinfo["meta_info"]["lyric"] = lyric_clips
+ return musicinfo
+
+
+def lrc_timestr2time(time_str: str) -> float:
+ """提取lrc中的时间戳文本,类似[00:00.00],转化成秒的浮点数
+
+ Args:
+ time_str (str):
+
+ Returns:
+ float: 时间浮点数
+ """
+ m, s, ms = (float(x) for x in re.split(r"[:.]", time_str))
+ return round((m * 60 + s + ms / 1000), 3)
+
+
+def get_lrc_line_time(text: str, time_pattern: str) -> str:
+ """提取lrc中的时间字符串, 类似 \"[00:00.00]本字幕由天琴实验室独家AI字幕技术生成\"
+
+ Args:
+ text (str): 输入文本
+ time_pattern (str): 时间字符串正则表达式
+
+ Returns:
+ str: 符合正则表达式的时间信息文本
+ """
+ time_str = re.search(time_pattern, text).group(0)
+ return lrc_timestr2time(time_str)
+
+
+def lrc_lyric2clip(lyric: str, time_pattern: str, duration: float) -> dict:
+ """将一行lrc文本字符串转化为Clip 字典
+
+ Args:
+ lyric (str): 类似 \"[00:00.00]本字幕由天琴实验室独家AI字幕技术生成\"
+ time_pattern (str): 时间字符串正则表达式,类似 r"\d+:\d+\.\d+"
+ duration (float): clip的时长信息,
+
+ Returns:
+ dict: 转化后Clip
+ Clip定义可以参考 https://git.woa.com/innovative_tech/VideoMashup/blob/master/videomashup/media/clip.py
+ """
+ time_str = get_lrc_line_time(lyric, time_pattern=time_pattern)
+ text = re.sub(time_pattern, "", lyric)
+ text = text[2:]
+ clip = {
+ "time_start": time_str,
+ "duration": duration,
+ "text": text,
+ "timepoint_type": -1,
+ }
+ return clip
+
+
+def lrc2musicinfo(lyric: str, time_pattern: str = "\d+:\d+\.\d+") -> dict:
+ """将lrc转化为音乐谱面
+
+ Args:
+ lyric (str): lrc文本路径
+ time_pattern (str, optional): lrc时间戳字符串正则表达式. Defaults to "\d+:\d+\.\d+".
+
+ Returns:
+ dict: 生成的音乐谱面字典,定义可参考 https://git.woa.com/innovative_tech/VideoMashup/blob/master/videomashup/music/music_info.py
+ """
+ if isinstance(lyric, str):
+ if os.path.isfile(lyric):
+ with open(lyric, "r") as f:
+ lyric = [line.strip() for line in f.readlines()]
+ return lrc2musicinfo(lyric)
+ else:
+ lyric = lyric.split("\n")
+ return lrc2musicinfo(lyric)
+ else:
+ musicinfo = {
+ "meta_info": {
+ "mediaid": None,
+ "media_name": None,
+ "singer": None,
+ },
+ "sub_meata_info": {},
+ "clips": [],
+ }
+ # lyrics = [line.strip() for line in re.split(r"[\t\n\s+]", lyrics)]
+ lyric_clips = []
+ rows = len(lyric)
+ for i, line in enumerate(lyric):
+ if is_songname(line):
+ musicinfo["meta_info"]["media_name"] = line[4:-1]
+ continue
+ if is_singer(line):
+ musicinfo["meta_info"]["singer"] = line[4:-1]
+ continue
+ if is_album(line):
+ musicinfo["meta_info"]["album"] = line[4:-1]
+ continue
+ if len(re.findall(time_pattern, line)) > 0:
+ if i < rows - 1:
+ time_start = get_lrc_line_time(line, time_pattern=time_pattern)
+ next_line_time_start = get_lrc_line_time(
+ lyric[i + 1], time_pattern=time_pattern
+ )
+ duration = next_line_time_start - time_start
+ else:
+ duration = 1
+ clip = lrc_lyric2clip(
+ line, duration=duration, time_pattern=time_pattern
+ )
+ musicinfo["clips"].append(clip)
+ musicinfo["meta_info"]["lyric"] = lyric_clips
+ return musicinfo
+
+
+def lyricfile2musicinfo(path: str) -> dict:
+ """将歌词文件转化为音乐谱面,歌词文件可以是QRC的xml文件、也可以是lrc对应的lrc文件
+ TODO: 待支持osu
+
+ Args:
+ path (str): 歌词文件路径
+
+ Returns:
+ dict: 音乐谱面字典,定义可参考 https://git.woa.com/innovative_tech/VideoMashup/blob/master/videomashup/music/music_info.py
+ """
+
+ filename, ext = os.path.basename(path).split(".")
+ if ext == "xml":
+ lyric = read_xml2json(path)
+ musicinfo = lyric2musicinfo(lyric)
+ elif ext == "lrc":
+ musicinfo = lrc2musicinfo(path)
+ musicinfo["meta_info"]["mediaid"] = filename
+ return musicinfo
diff --git a/MuseV/MMCM/mmcm/music/music_map/meta_info.py b/MuseV/MMCM/mmcm/music/music_map/meta_info.py
new file mode 100755
index 0000000000000000000000000000000000000000..6c51a1e4cfbe63bae36129738f5ec7477e8f9594
--- /dev/null
+++ b/MuseV/MMCM/mmcm/music/music_map/meta_info.py
@@ -0,0 +1,21 @@
+from __future__ import annotations
+
+from ...data import MetaInfo
+
+
+class MusicMetaInfo(MetaInfo):
+ def __init__(self, mediaid=None, media_name=None, media_duration=None, signature=None, media_path: str = None, media_map_path: str = None,
+ singer=None,
+ lyric_path=None,
+ genre=None,
+ language=None,
+ start: float = None, end: float = None, ext=None, **kwargs):
+ super().__init__(mediaid, media_name, media_duration, signature, media_path, media_map_path, start, end, ext, **kwargs)
+ self.singer = singer
+ self.genre = genre
+ self.language = language
+ self.lyric_path = lyric_path
+
+ @classmethod
+ def from_data(cls, data) -> MusicMetaInfo:
+ return MusicMetaInfo(**data)
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/music/music_map/mss_map.py b/MuseV/MMCM/mmcm/music/music_map/mss_map.py
new file mode 100755
index 0000000000000000000000000000000000000000..f904b8fbc94739a9a8bd9f4ffe52e29379135d8b
--- /dev/null
+++ b/MuseV/MMCM/mmcm/music/music_map/mss_map.py
@@ -0,0 +1,185 @@
+import logging
+
+from .music_clip import MusicClip, MusicClipSeq
+from .music_map import MusicMap
+from ...data.clip.clip_process import find_idx_by_time
+
+logger = logging.getLogger(__name__) # pylint: disable=invalid-name
+
+
+def insert_mss_2_clipseq(
+ clipseq: MusicClipSeq, mss_clipseq: MusicClipSeq
+) -> MusicClipSeq:
+ """将mss中的结构字段信息赋予到目标clipseq中的最近clip
+
+ Args:
+ clipseq (ClipSeq): 目标clip序列
+ reference (ClipSeq): 参考clip序列
+ field (str): 目标字段
+
+ Returns:
+ ClipSeq: 更新目标字段新值后的clip序列
+ """
+ for i, clip in enumerate(clipseq):
+ idx = find_idx_by_time(mss_clipseq, clip.time_start)
+ if idx is not None:
+ clipseq[i].stage = mss_clipseq[idx].stage
+ else:
+ clipseq[i].stage = "unknow"
+ return clipseq
+
+
+def get_mss_musicinfo(songid: str) -> MusicMap:
+ """通过调用media_data中的接口 获取天琴实验室的歌曲结构信息
+
+ Args:
+ songid (str): 歌词id
+
+ Returns:
+ MusicMap: mss结构信息生成的音乐谱面
+ """
+ try:
+ from media_data.oi.tianqin_database import get_mss
+
+ mss = get_mss(songid=songid)
+ except Exception as e:
+ logger.warning("get mss failed, mss={}".format(songid))
+ logger.exception(e)
+ mss = None
+ mss_musicinfo = MusicMap(mss) if mss is not None else None
+ return mss_musicinfo
+
+
+def merge_mss(musicinfo: MusicMap, mss: MusicMap) -> MusicMap:
+ """融合mss音乐谱面到目标音乐谱面
+
+ Args:
+ musicinfo (MusicMap): 目标音乐谱面
+ mss (MusicMap): 待融合的mss音乐谱面
+
+ Returns:
+ MusicMap: 融合后的音乐谱面
+ """
+ musicinfo.meta_info.bpm = mss.meta_info.bpm
+ if len(mss.clipseq) > 0:
+ musicinfo.clipseq = insert_mss_2_clipseq(musicinfo.clipseq, mss.clipseq)
+ return musicinfo
+
+
+def generate_mss_from_lyric(lyrics: list, audio_duration: float, th=8) -> MusicClipSeq:
+ # "intro", "VA", "CA", "bridge", "VB", "CB", "end"]
+ mss = []
+ n_lyric = len(lyrics)
+ for lyric_idx, line_lyric_dct in enumerate(lyrics):
+ time_start = line_lyric_dct["time_start"]
+ duration = line_lyric_dct["duration"]
+ time_end = time_start + duration
+ # text = line_lyric_dct["text"]
+ if lyric_idx == 0:
+ sub_mss = {
+ "stage": "intro",
+ "time_start": 0,
+ "duration": time_start,
+ }
+ mss.append(sub_mss)
+ continue
+ if lyric_idx == n_lyric - 1:
+ sub_mss = {
+ "stage": "end",
+ "time_start": time_end,
+ "duration": audio_duration - time_end,
+ }
+ mss.append(sub_mss)
+ continue
+
+ if lyrics[lyric_idx + 1]["time_start"] - time_end >= th:
+ sub_mss = {
+ "stage": "bridge",
+ "time_start": time_end,
+ "duration": lyrics[lyric_idx + 1]["time_start"] - time_end,
+ }
+ mss.append(sub_mss)
+ mss_lyric = []
+ for sub_idx, sub_mss in enumerate(mss):
+ if sub_idx == len(mss) - 1:
+ continue
+ time_end = sub_mss["time_start"] + sub_mss["duration"]
+ next_time_start = mss[sub_idx + 1]["time_start"]
+ if next_time_start - time_end > 0.1:
+ mss_lyric.append(
+ {
+ "stage": "lyric",
+ "time_start": time_end,
+ "duration": next_time_start - time_end,
+ }
+ )
+ mss.extend(mss_lyric)
+ mss = sorted(mss, key=lambda x: x["time_start"])
+ mss = MusicClipSeq(mss)
+ return mss
+
+
+def refine_mss_info_from_tianqin(
+ mss_info: MusicMap, lyricseq: MusicClipSeq
+) -> MusicMap:
+ """优化天琴的歌曲结信息,
+ 优化前:天琴歌曲结构里面只有每句歌词和结构信息,时间前后不连续,对于整首歌去时间结构不完备。
+ 优化后:增加intro,bridge,end,将相近的结构信息合并,时间前后连续,时间完备
+
+ Args:
+ mss_info (MusicMap): 天琴歌曲结构
+ lyricseq (ClipSeq): 原始歌曲信息,用于计算Intro,bridge,end。其实也可以从mss_info中获取。
+
+ Returns:
+ MusicMap: 优化后的歌曲结构信息
+ """
+ lyric_mss_clipseq = generate_mss_from_lyric(
+ lyricseq, audio_duration=mss_info.meta_info.duration
+ )
+ new_mss_clipseq = []
+ # lyric_mss_dct = lyric_mss_clipseq.to_dct()
+ # mss_dct = mss_info.clipseq.to_dct()
+ for l_clip_idx, lyric_clip in enumerate(lyric_mss_clipseq):
+ if lyric_clip.stage != "lyric":
+ new_mss_clipseq.append(lyric_clip)
+ else:
+ new_clip_time_start = lyric_clip.time_start
+ last_stage = "ANewClipStart"
+ for clip_idx, clip in enumerate(mss_info.clipseq):
+ if clip.time_start < new_clip_time_start:
+ continue
+ if (
+ clip.time_start >= lyric_mss_clipseq[l_clip_idx + 1].time_start
+ or clip_idx == len(mss_info.clipseq) - 1
+ ):
+ if clip.time_start >= lyric_mss_clipseq[l_clip_idx + 1].time_start:
+ stage = last_stage
+ # 像偶阵雨这首歌最后一个歌词段落 只有一句歌词
+ if clip_idx == len(mss_info.clipseq) - 1:
+ stage = clip.stage
+ new_clip_time_end = lyric_mss_clipseq[l_clip_idx + 1].time_start
+ new_stage_clip = {
+ "time_start": new_clip_time_start,
+ "duration": new_clip_time_end - new_clip_time_start,
+ "stage": stage,
+ }
+ new_mss_clipseq.append(MusicClip(**new_stage_clip))
+ new_clip_time_start = new_clip_time_end
+ last_stage = clip.stage
+ break
+ if clip.stage != last_stage:
+ if last_stage == "ANewClipStart":
+ last_stage = clip.stage
+ continue
+ new_clip_time_end = mss_info.clipseq[clip_idx].time_start
+ new_stage_clip = {
+ "time_start": new_clip_time_start,
+ "duration": new_clip_time_end - new_clip_time_start,
+ "stage": last_stage,
+ }
+ new_mss_clipseq.append(MusicClip(**new_stage_clip))
+ new_clip_time_start = new_clip_time_end
+ last_stage = clip.stage
+ new_mss_clipseq = MusicClipSeq(sorted(new_mss_clipseq, key=lambda x: x.time_start))
+ mss_info.clipseq = new_mss_clipseq
+ return mss_info
diff --git a/MuseV/MMCM/mmcm/music/music_map/music_clip.py b/MuseV/MMCM/mmcm/music/music_map/music_clip.py
new file mode 100755
index 0000000000000000000000000000000000000000..5e473e405b8451dc056e32617871b7e0d8261108
--- /dev/null
+++ b/MuseV/MMCM/mmcm/music/music_map/music_clip.py
@@ -0,0 +1,83 @@
+from __future__ import annotations
+from typing import Dict, List
+
+from ...data.clip import Clip, ClipSeq
+
+
+class MusicClip(Clip):
+ def __init__(self, time_start: float, duration: float, clipid: int = None, media_type: str = None, mediaid: str = None, timepoint_type: str = None, text: str = None, stage: str = None, path: str = None, duration_num: int = None, similar_clipseq: MatchedClipIds = None, dynamic: float = None, **kwargs):
+ super().__init__(time_start, duration, clipid, media_type, mediaid, timepoint_type, text, stage, path, duration_num, similar_clipseq, dynamic, **kwargs)
+
+ @property
+ def text_num(self):
+ return self._cal_text_num()
+
+ @property
+ def original_text_num(self):
+ return self._cal_text_num(text_mode=1)
+
+ def _cal_text_num(self, text_mode: int = 0) -> int:
+ """计算 文本 字的数量
+
+ Args:
+ text_mode (int, optional): 0选text, 其他选original_text. Defaults to 0.
+
+ Returns:
+ int: _description_
+ """
+ if text_mode == 0:
+ text = self.text
+ else:
+ text = self.original_text
+ if text is None:
+ n_text = 0
+ else:
+ text = text.strip().split(" ")
+ n_text = len(text)
+ return n_text
+
+ @property
+ def text_num_per_second(self):
+ """单位时间内的text数量"""
+ return self._cal_text_num_per_second(mode=0)
+
+ @property
+ def original_text_num_per_second(self):
+ """单位时间内的original_text数量"""
+ return self._cal_text_num_per_second(mode=1)
+
+ @property
+ def tnps(self):
+ """单位时间内的text数量"""
+ return self.text_num_per_second
+
+ @property
+ def original_tnps(self):
+ """单位时间内的original_text数量"""
+ return self.original_text_num_per_second
+
+ def _cal_text_num_per_second(self, mode=0):
+ """计算单位时间内的文本数量"""
+ text_num = self.text_num if mode == 0 else self.original_text_num
+ return text_num / self.duration
+
+ @classmethod
+ def from_data(cls, data: Dict):
+ return MusicClip(**data)
+
+
+class MusicClipSeq(ClipSeq):
+
+ def __init__(self, items: List[Clip] = None):
+ super().__init__(items)
+ self.clipseq = self.data
+
+ @classmethod
+ def from_data(cls, clipseq: List[Dict]) -> MusicClipSeq:
+ new_clipseq = []
+ for clip in clipseq:
+ video_clip = MusicClip.from_data(clip)
+ new_clipseq.append(video_clip)
+ video_clipseq = MusicClipSeq(new_clipseq)
+ return video_clipseq
+
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/music/music_map/music_map.py b/MuseV/MMCM/mmcm/music/music_map/music_map.py
new file mode 100755
index 0000000000000000000000000000000000000000..12b4f7b94abf9ee738209772a9db9c8a46745cde
--- /dev/null
+++ b/MuseV/MMCM/mmcm/music/music_map/music_map.py
@@ -0,0 +1,140 @@
+from __future__ import annotations
+from typing import List, Dict
+
+from moviepy.editor import concatenate_audioclips, AudioClip, AudioFileClip
+
+from ...data import MediaMap, MediaMapEmb, MetaInfo, MediaMapSeq
+from ...data.clip.clip_process import find_time_by_stage
+from ...data.emb.h5py_emb import H5pyMediaMapEmb
+from ...utils.util import load_dct_from_file
+
+from .clip_process import get_stageseq_from_clipseq
+from .music_clip import MusicClip, MusicClipSeq
+from .meta_info import MusicMetaInfo
+
+
+class MusicMap(MediaMap):
+ def __init__(
+ self,
+ meta_info: MetaInfo,
+ clipseq: MusicClipSeq,
+ lyricseq: MusicClipSeq = None,
+ stageseq: MusicClipSeq = None,
+ frameseq: MusicClipSeq = None,
+ emb: MediaMapEmb = None,
+ **kwargs,
+ ):
+ self.lyricseq = lyricseq
+ super().__init__(meta_info, clipseq, stageseq, frameseq, emb, **kwargs)
+ if self.stageseq is None:
+ self.stageseq = MusicClipSeq.from_data(
+ get_stageseq_from_clipseq(self.clipseq)
+ )
+ self.stageseq.preprocess()
+
+ def preprocess(self):
+ if (
+ hasattr(self.meta_info, "target_stages")
+ and self.meta_info.target_stages is not None
+ ):
+ self.set_start_end_by_target_stages()
+ super().preprocess()
+ self.spread_metainfo_2_clip(
+ target_keys=[
+ "media_path",
+ "media_map_path",
+ "emb_path",
+ "media_duration",
+ "mediaid",
+ "media_name",
+ "emb",
+ ]
+ )
+
+ def set_start_end_by_target_stages(self):
+ target_stages = self.meta_info.target_stages
+ if not isinstance(target_stages, List):
+ target_stages = [target_stages]
+ start, _ = find_time_by_stage(self.stageseq, target_stages[0])
+ _, end = find_time_by_stage(self.stageseq, target_stages[-1])
+ self.meta_info.start = start
+ self.meta_info.end = end
+
+ @property
+ def audio_clip(self) -> AudioFileClip:
+ """读取实际ClipSeq中的音频
+
+ Returns:
+ AudioClip: Moviepy中的audio_clip
+ """
+ audio_clip = AudioFileClip(self.meta_info.media_path)
+ audio_clip = audio_clip.subclip(self.meta_info.start, self.meta_info.end)
+ return audio_clip
+
+ @classmethod
+ def from_json_path(
+ cls, path: Dict, emb_path: str, media_path: str = None, **kwargs
+ ) -> MusicMap:
+ media_map = load_dct_from_file(path)
+ emb = H5pyMediaMapEmb(emb_path)
+ return cls.from_data(media_map, emb=emb, media_path=media_path, **kwargs)
+
+ @classmethod
+ def from_data(
+ cls, data: Dict, emb: H5pyMediaMapEmb, media_path: str = None, **kwargs
+ ) -> MusicMap:
+ meta_info = MusicMetaInfo.from_data(data.get("meta_info", {}))
+ meta_info.media_path = media_path
+ clipseq = MusicClipSeq.from_data(data.get("clipseq", []))
+ stageseq = MusicClipSeq.from_data(data.get("stageseq", []))
+ lyricseq = MusicClipSeq.from_data(data.get("lyricseq", []))
+ target_keys = ["meta_info", "clipseq", "frameseq", "stageseq", "lyricseq"]
+ dct = {k: data[k] for k in data.keys() if k not in target_keys}
+ dct.update(**kwargs)
+ video_map = MusicMap(
+ meta_info=meta_info,
+ clipseq=clipseq,
+ stageseq=stageseq,
+ lyricseq=lyricseq,
+ emb=emb,
+ **dct,
+ )
+ return video_map
+
+ def to_dct(
+ self, target_keys: List[str] = None, ignored_keys: List[str] = None
+ ) -> Dict:
+ dct = {}
+ dct["meta_info"] = self.meta_info.to_dct(
+ target_keys=target_keys, ignored_keys=ignored_keys
+ )
+ dct["clipseq"] = self.clipseq.to_dct(
+ target_keys=target_keys, ignored_keys=ignored_keys
+ )
+ if self.frameseq is not None:
+ dct["frameseq"] = self.frameseq.to_dct(
+ target_keys=target_keys, ignored_keys=ignored_keys
+ )
+ else:
+ dct["frameseq"] = None
+ if self.stageseq is not None:
+ dct["stageseq"] = self.stageseq.to_dct(
+ target_keys=target_keys, ignored_keys=ignored_keys
+ )
+ else:
+ dct["stageseq"] = None
+ dct["lyricseq"] = self.lyricseq.to_dct(
+ target_keys=target_keys, ignored_keys=ignored_keys
+ )
+ return dct
+
+
+class MusicMapSeq(MediaMapSeq):
+ def __init__(self, maps: List[MusicMap]) -> None:
+ super().__init__(maps)
+
+ @property
+ def audio_clip(self) -> AudioFileClip:
+ audio_clip_lst = [m.audi_clip for m in self.maps]
+ audio_clip = concatenate_audioclips(audio_clip_lst)
+ return audio_clip
diff --git a/MuseV/MMCM/mmcm/music/music_map/music_map_demp.py b/MuseV/MMCM/mmcm/music/music_map/music_map_demp.py
new file mode 100755
index 0000000000000000000000000000000000000000..d1467df207d34fe26bfde1edc65517fc83e12952
--- /dev/null
+++ b/MuseV/MMCM/mmcm/music/music_map/music_map_demp.py
@@ -0,0 +1,58 @@
+from moviepy.editor import (
+ ColorClip,
+ concatenate_videoclips,
+ AudioFileClip,
+ CompositeVideoClip,
+)
+
+from ...vision.video_map.video_lyric import render_lyric2video
+from ...vision.video_map.video_writer import write_videoclip
+from .music_map import MusicMap
+
+
+def generate_music_map_videodemo(
+ music_map: MusicMap,
+ path: str,
+ audio_path: str,
+ render_lyric: bool = True,
+ width: int = 360,
+ height: int = 240,
+ fps: int = 25,
+ n_thread: int = 8,
+ colors: list = [[51, 161, 201], [46, 139, 87]],
+) -> None:
+ """输入音乐谱面,生成对应的转场视频Demo,视频内容只是简单的颜色切换
+
+ Args:
+ music_map (MusicInfo): 待可视化的音乐谱面
+ path (str): 可视化视频的存储路径
+ audio_path (str): 音乐谱面对应的音频路径
+ render_lyric (bool, optional): 是否渲染歌词,歌词在音乐谱面中. Defaults to True.
+ width (int, optional): 可视化视频的宽. Defaults to 360.
+ height (int, optional): 可视化视频的高. Defaults to 240.
+ fps (int, optional): 可视化视频的fps. Defaults to 25.
+ n_thread (int, optional): 可视化视频的写入线程数. Defaults to 8.
+ colors (list, optional): 可视化的视频颜色. Defaults to [[51, 161, 201], [46, 139, 87]].
+ """
+ audio_clip = AudioFileClip(audio_path)
+ video_clips = []
+ size = (width, height)
+ for i, clip in enumerate(music_map.clipseq):
+ clip = ColorClip(
+ size=size, color=colors[i % len(colors)], duration=clip.duration
+ )
+ video_clips.append(clip)
+ video_clips = concatenate_videoclips(video_clips, method="compose")
+ if render_lyric:
+ video_clips = render_lyric2video(
+ videoclip=video_clips,
+ lyric=music_map,
+ lyric_info_type="music_map",
+ )
+ video_clips = video_clips.set_audio(audio_clip)
+ write_videoclip(
+ video_clips,
+ path=path,
+ fps=fps,
+ n_thread=n_thread,
+ )
diff --git a/MuseV/MMCM/mmcm/music/utils/__init__.py b/MuseV/MMCM/mmcm/music/utils/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/music/utils/path_util.py b/MuseV/MMCM/mmcm/music/utils/path_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..a2f0f9d332b0d1755020dde125ff89be8048b0f2
--- /dev/null
+++ b/MuseV/MMCM/mmcm/music/utils/path_util.py
@@ -0,0 +1,9 @@
+import os
+from typing import Dict, Tuple
+
+from ...utils.path_util import get_dir_file_map
+
+
+def get_audio_path_dct(path, exts=["mp3", "flac", "wav"]) -> Dict[str, str]:
+ """遍历目标文件夹及子文件夹下所有音频文件,生成字典。"""
+ return get_dir_file_map(path, exts=exts)
diff --git a/MuseV/MMCM/mmcm/t2p/.gitignore b/MuseV/MMCM/mmcm/t2p/.gitignore
new file mode 100755
index 0000000000000000000000000000000000000000..5f170f04619c1b0a59e2ead7dc65455983fcb2c0
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/.gitignore
@@ -0,0 +1,158 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+pip-wheel-metadata/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+.python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+.vscode
+dataset/dataset_TM_train_cb1_temp.py
+train_gpt_cnn_temp.py
+train_gpt_cnn_mask.py
+start.sh
+start_eval.sh
+config.json
+output_GPT_Final
+output_vqfinal
+output_transformer
+glove
+checkpoints
+dataset/HumanML3D
+dataset/KIT-ML
+output
+matrix_multi.py
+body_models
+render_final_diffuse.py
+render_final_mdm.py
+pretrained
+MDM
+Motiondiffusion
+Visualize_temp.py
+new.sh
+T2M_render
+render_final_t2m.py
+
+pose
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/GPT_eval_multi.py b/MuseV/MMCM/mmcm/t2p/GPT_eval_multi.py
new file mode 100755
index 0000000000000000000000000000000000000000..f757367114e8adb4676681367351defddd08fc9d
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/GPT_eval_multi.py
@@ -0,0 +1,121 @@
+import os
+import torch
+import numpy as np
+from torch.utils.tensorboard import SummaryWriter
+import json
+import clip
+
+import options.option_transformer as option_trans
+import models.vqvae as vqvae
+import utils.utils_model as utils_model
+import utils.eval_trans as eval_trans
+from dataset import dataset_TM_eval
+import models.t2m_trans as trans
+from options.get_eval_option import get_opt
+from models.evaluator_wrapper import EvaluatorModelWrapper
+import warnings
+warnings.filterwarnings('ignore')
+
+##### ---- Exp dirs ---- #####
+args = option_trans.get_args_parser()
+torch.manual_seed(args.seed)
+
+args.out_dir = os.path.join(args.out_dir, f'{args.exp_name}')
+os.makedirs(args.out_dir, exist_ok = True)
+
+##### ---- Logger ---- #####
+logger = utils_model.get_logger(args.out_dir)
+writer = SummaryWriter(args.out_dir)
+logger.info(json.dumps(vars(args), indent=4, sort_keys=True))
+
+from utils.word_vectorizer import WordVectorizer
+w_vectorizer = WordVectorizer('./glove', 'our_vab')
+val_loader = dataset_TM_eval.DATALoader(args.dataname, True, 32, w_vectorizer)
+
+dataset_opt_path = 'checkpoints/kit/Comp_v6_KLD005/opt.txt' if args.dataname == 'kit' else 'checkpoints/t2m/Comp_v6_KLD005/opt.txt'
+
+wrapper_opt = get_opt(dataset_opt_path, torch.device('cuda'))
+eval_wrapper = EvaluatorModelWrapper(wrapper_opt)
+
+##### ---- Network ---- #####
+
+## load clip model and datasets
+clip_model, clip_preprocess = clip.load("ViT-B/32", device=torch.device('cuda'), jit=False) # Must set jit=False for training
+clip.model.convert_weights(clip_model) # Actually this line is unnecessary since clip by default already on float16
+clip_model.eval()
+for p in clip_model.parameters():
+ p.requires_grad = False
+
+net = vqvae.HumanVQVAE(args, ## use args to define different parameters in different quantizers
+ args.nb_code,
+ args.code_dim,
+ args.output_emb_width,
+ args.down_t,
+ args.stride_t,
+ args.width,
+ args.depth,
+ args.dilation_growth_rate)
+
+
+trans_encoder = trans.Text2Motion_Transformer(num_vq=args.nb_code,
+ embed_dim=args.embed_dim_gpt,
+ clip_dim=args.clip_dim,
+ block_size=args.block_size,
+ num_layers=args.num_layers,
+ n_head=args.n_head_gpt,
+ drop_out_rate=args.drop_out_rate,
+ fc_rate=args.ff_rate)
+
+
+print ('loading checkpoint from {}'.format(args.resume_pth))
+ckpt = torch.load(args.resume_pth, map_location='cpu')
+net.load_state_dict(ckpt['net'], strict=True)
+net.eval()
+net.cuda()
+
+if args.resume_trans is not None:
+ print ('loading transformer checkpoint from {}'.format(args.resume_trans))
+ ckpt = torch.load(args.resume_trans, map_location='cpu')
+ trans_encoder.load_state_dict(ckpt['trans'], strict=True)
+trans_encoder.train()
+trans_encoder.cuda()
+
+
+fid = []
+div = []
+top1 = []
+top2 = []
+top3 = []
+matching = []
+multi = []
+repeat_time = 20
+
+
+for i in range(repeat_time):
+ best_fid, best_iter, best_div, best_top1, best_top2, best_top3, best_matching, best_multi, writer, logger = eval_trans.evaluation_transformer_test(args.out_dir, val_loader, net, trans_encoder, logger, writer, 0, best_fid=1000, best_iter=0, best_div=100, best_top1=0, best_top2=0, best_top3=0, best_matching=100, best_multi=0, clip_model=clip_model, eval_wrapper=eval_wrapper, draw=False, savegif=False, save=False, savenpy=(i==0))
+ fid.append(best_fid)
+ div.append(best_div)
+ top1.append(best_top1)
+ top2.append(best_top2)
+ top3.append(best_top3)
+ matching.append(best_matching)
+ multi.append(best_multi)
+
+print('final result:')
+print('fid: ', sum(fid)/repeat_time)
+print('div: ', sum(div)/repeat_time)
+print('top1: ', sum(top1)/repeat_time)
+print('top2: ', sum(top2)/repeat_time)
+print('top3: ', sum(top3)/repeat_time)
+print('matching: ', sum(matching)/repeat_time)
+print('multi: ', sum(multi)/repeat_time)
+
+fid = np.array(fid)
+div = np.array(div)
+top1 = np.array(top1)
+top2 = np.array(top2)
+top3 = np.array(top3)
+matching = np.array(matching)
+multi = np.array(multi)
+msg_final = f"FID. {np.mean(fid):.3f}, conf. {np.std(fid)*1.96/np.sqrt(repeat_time):.3f}, Diversity. {np.mean(div):.3f}, conf. {np.std(div)*1.96/np.sqrt(repeat_time):.3f}, TOP1. {np.mean(top1):.3f}, conf. {np.std(top1)*1.96/np.sqrt(repeat_time):.3f}, TOP2. {np.mean(top2):.3f}, conf. {np.std(top2)*1.96/np.sqrt(repeat_time):.3f}, TOP3. {np.mean(top3):.3f}, conf. {np.std(top3)*1.96/np.sqrt(repeat_time):.3f}, Matching. {np.mean(matching):.3f}, conf. {np.std(matching)*1.96/np.sqrt(repeat_time):.3f}, Multi. {np.mean(multi):.3f}, conf. {np.std(multi)*1.96/np.sqrt(repeat_time):.3f}"
+logger.info(msg_final)
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/LICENSE b/MuseV/MMCM/mmcm/t2p/LICENSE
new file mode 100755
index 0000000000000000000000000000000000000000..e07bc45f04128512bc8da2c688e8683efb93219f
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 2023 tencent
+
+ 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.
diff --git a/MuseV/MMCM/mmcm/t2p/README.md b/MuseV/MMCM/mmcm/t2p/README.md
new file mode 100755
index 0000000000000000000000000000000000000000..14d1c5d12a612039cf8043f338680be2b6c11b65
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/README.md
@@ -0,0 +1,329 @@
+# (CVPR 2023) T2M-GPT
+Pytorch implementation of paper "T2M-GPT: Generating Human Motion from Textual Descriptions with Discrete Representations"
+
+
+[[Project Page]](https://mael-zys.github.io/T2M-GPT/) [[Paper]](https://arxiv.org/abs/2301.06052) [[Notebook Demo]](https://colab.research.google.com/drive/1Vy69w2q2d-Hg19F-KibqG0FRdpSj3L4O?usp=sharing) [[HuggingFace]](https://huggingface.co/vumichien/T2M-GPT) [[Space Demo]](https://huggingface.co/spaces/vumichien/generate_human_motion)
+
+
+
+
+
+
+If our project is helpful for your research, please consider citing :
+```
+@inproceedings{zhang2023generating,
+ title={T2M-GPT: Generating Human Motion from Textual Descriptions with Discrete Representations},
+ author={Zhang, Jianrong and Zhang, Yangsong and Cun, Xiaodong and Huang, Shaoli and Zhang, Yong and Zhao, Hongwei and Lu, Hongtao and Shen, Xi},
+ booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
+ year={2023},
+}
+```
+
+
+## Table of Content
+* [1. Visual Results](#1-visual-results)
+* [2. Installation](#2-installation)
+* [3. Quick Start](#3-quick-start)
+* [4. Train](#4-train)
+* [5. Evaluation](#5-evaluation)
+* [6. SMPL Mesh Rendering](#6-smpl-mesh-rendering)
+* [7. Acknowledgement](#7-acknowledgement)
+* [8. ChangLog](#8-changlog)
+
+
+
+
+## 1. Visual Results (More results can be found in our [project page](https://mael-zys.github.io/T2M-GPT/))
+
+
+
+
+
+
+ Text: a man steps forward and does a handstand. |
+
+
+ GT |
+ T2M |
+ MDM |
+ MotionDiffuse |
+ Ours |
+
+
+
+ |
+ |
+ |
+ |
+ |
+
+
+
+ Text: A man rises from the ground, walks in a circle and sits back down on the ground. |
+
+
+ GT |
+ T2M |
+ MDM |
+ MotionDiffuse |
+ Ours |
+
+
+
+ |
+ |
+ |
+ |
+ |
+
+
+
+
+## 2. Installation
+
+### 2.1. Environment
+
+
+Our model can be learnt in a **single GPU V100-32G**
+
+```bash
+conda env create -f environment.yml
+conda activate T2M-GPT
+```
+
+The code was tested on Python 3.8 and PyTorch 1.8.1.
+
+
+### 2.2. Dependencies
+
+```bash
+bash dataset/prepare/download_glove.sh
+```
+
+
+### 2.3. Datasets
+
+
+We are using two 3D human motion-language dataset: HumanML3D and KIT-ML. For both datasets, you could find the details as well as download link [[here]](https://github.com/EricGuo5513/HumanML3D).
+
+Take HumanML3D for an example, the file directory should look like this:
+```
+./dataset/HumanML3D/
+├── new_joint_vecs/
+├── texts/
+├── Mean.npy # same as in [HumanML3D](https://github.com/EricGuo5513/HumanML3D)
+├── Std.npy # same as in [HumanML3D](https://github.com/EricGuo5513/HumanML3D)
+├── train.txt
+├── val.txt
+├── test.txt
+├── train_val.txt
+└── all.txt
+```
+
+
+### 2.4. Motion & text feature extractors:
+
+We use the same extractors provided by [t2m](https://github.com/EricGuo5513/text-to-motion) to evaluate our generated motions. Please download the extractors.
+
+```bash
+bash dataset/prepare/download_extractor.sh
+```
+
+### 2.5. Pre-trained models
+
+The pretrained model files will be stored in the 'pretrained' folder:
+```bash
+bash dataset/prepare/download_model.sh
+```
+
+
+### 2.6. Render SMPL mesh (optional)
+
+If you want to render the generated motion, you need to install:
+
+```bash
+sudo sh dataset/prepare/download_smpl.sh
+conda install -c menpo osmesa
+conda install h5py
+conda install -c conda-forge shapely pyrender trimesh mapbox_earcut
+```
+
+
+
+## 3. Quick Start
+
+A quick start guide of how to use our code is available in [demo.ipynb](https://colab.research.google.com/drive/1Vy69w2q2d-Hg19F-KibqG0FRdpSj3L4O?usp=sharing)
+
+
+
+
+
+
+## 4. Train
+
+Note that, for kit dataset, just need to set '--dataname kit'.
+
+### 4.1. VQ-VAE
+
+The results are saved in the folder output.
+
+
+
+VQ training
+
+
+```bash
+python3 train_vq.py \
+--batch-size 256 \
+--lr 2e-4 \
+--total-iter 300000 \
+--lr-scheduler 200000 \
+--nb-code 512 \
+--down-t 2 \
+--depth 3 \
+--dilation-growth-rate 3 \
+--out-dir output \
+--dataname t2m \
+--vq-act relu \
+--quantizer ema_reset \
+--loss-vel 0.5 \
+--recons-loss l1_smooth \
+--exp-name VQVAE
+```
+
+
+
+### 4.2. GPT
+
+The results are saved in the folder output.
+
+
+
+GPT training
+
+
+```bash
+python3 train_t2m_trans.py \
+--exp-name GPT \
+--batch-size 128 \
+--num-layers 9 \
+--embed-dim-gpt 1024 \
+--nb-code 512 \
+--n-head-gpt 16 \
+--block-size 51 \
+--ff-rate 4 \
+--drop-out-rate 0.1 \
+--resume-pth output/VQVAE/net_last.pth \
+--vq-name VQVAE \
+--out-dir output \
+--total-iter 300000 \
+--lr-scheduler 150000 \
+--lr 0.0001 \
+--dataname t2m \
+--down-t 2 \
+--depth 3 \
+--quantizer ema_reset \
+--eval-iter 10000 \
+--pkeep 0.5 \
+--dilation-growth-rate 3 \
+--vq-act relu
+```
+
+
+
+## 5. Evaluation
+
+### 5.1. VQ-VAE
+
+
+VQ eval
+
+
+```bash
+python3 VQ_eval.py \
+--batch-size 256 \
+--lr 2e-4 \
+--total-iter 300000 \
+--lr-scheduler 200000 \
+--nb-code 512 \
+--down-t 2 \
+--depth 3 \
+--dilation-growth-rate 3 \
+--out-dir output \
+--dataname t2m \
+--vq-act relu \
+--quantizer ema_reset \
+--loss-vel 0.5 \
+--recons-loss l1_smooth \
+--exp-name TEST_VQVAE \
+--resume-pth output/VQVAE/net_last.pth
+```
+
+
+
+### 5.2. GPT
+
+
+
+GPT eval
+
+
+Follow the evaluation setting of [text-to-motion](https://github.com/EricGuo5513/text-to-motion), we evaluate our model 20 times and report the average result. Due to the multimodality part where we should generate 30 motions from the same text, the evaluation takes a long time.
+
+```bash
+python3 GPT_eval_multi.py \
+--exp-name TEST_GPT \
+--batch-size 128 \
+--num-layers 9 \
+--embed-dim-gpt 1024 \
+--nb-code 512 \
+--n-head-gpt 16 \
+--block-size 51 \
+--ff-rate 4 \
+--drop-out-rate 0.1 \
+--resume-pth output/VQVAE/net_last.pth \
+--vq-name VQVAE \
+--out-dir output \
+--total-iter 300000 \
+--lr-scheduler 150000 \
+--lr 0.0001 \
+--dataname t2m \
+--down-t 2 \
+--depth 3 \
+--quantizer ema_reset \
+--eval-iter 10000 \
+--pkeep 0.5 \
+--dilation-growth-rate 3 \
+--vq-act relu \
+--resume-trans output/GPT/net_best_fid.pth
+```
+
+
+
+
+## 6. SMPL Mesh Rendering
+
+
+
+SMPL Mesh Rendering
+
+
+You should input the npy folder address and the motion names. Here is an example:
+
+```bash
+python3 render_final.py --filedir output/TEST_GPT/ --motion-list 000019 005485
+```
+
+
+
+### 7. Acknowledgement
+
+We appreciate helps from :
+
+* public code like [text-to-motion](https://github.com/EricGuo5513/text-to-motion), [TM2T](https://github.com/EricGuo5513/TM2T), [MDM](https://github.com/GuyTevet/motion-diffusion-model), [MotionDiffuse](https://github.com/mingyuan-zhang/MotionDiffuse) etc.
+* Mathis Petrovich, Yuming Du, Yingyi Chen, Dexiong Chen and Xuelin Chen for inspiring discussions and valuable feedback.
+* Minh Chien Vu for the hugging face space demo.
+
+### 8. ChangLog
+
+* 2023/02/19 add the hugging face space demo for both skelton and SMPL mesh visualization.
diff --git a/MuseV/MMCM/mmcm/t2p/VQ_eval.py b/MuseV/MMCM/mmcm/t2p/VQ_eval.py
new file mode 100755
index 0000000000000000000000000000000000000000..f1b7f269e344f730797eba13a45c9672f323b9f5
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/VQ_eval.py
@@ -0,0 +1,95 @@
+import os
+import json
+
+import torch
+from torch.utils.tensorboard import SummaryWriter
+import numpy as np
+import models.vqvae as vqvae
+import options.option_vq as option_vq
+import utils.utils_model as utils_model
+from dataset import dataset_TM_eval
+import utils.eval_trans as eval_trans
+from options.get_eval_option import get_opt
+from models.evaluator_wrapper import EvaluatorModelWrapper
+import warnings
+warnings.filterwarnings('ignore')
+import numpy as np
+##### ---- Exp dirs ---- #####
+args = option_vq.get_args_parser()
+torch.manual_seed(args.seed)
+
+args.out_dir = os.path.join(args.out_dir, f'{args.exp_name}')
+os.makedirs(args.out_dir, exist_ok = True)
+
+##### ---- Logger ---- #####
+logger = utils_model.get_logger(args.out_dir)
+writer = SummaryWriter(args.out_dir)
+logger.info(json.dumps(vars(args), indent=4, sort_keys=True))
+
+
+from utils.word_vectorizer import WordVectorizer
+w_vectorizer = WordVectorizer('./glove', 'our_vab')
+
+
+dataset_opt_path = 'checkpoints/kit/Comp_v6_KLD005/opt.txt' if args.dataname == 'kit' else 'checkpoints/t2m/Comp_v6_KLD005/opt.txt'
+
+wrapper_opt = get_opt(dataset_opt_path, torch.device('cuda'))
+eval_wrapper = EvaluatorModelWrapper(wrapper_opt)
+
+
+##### ---- Dataloader ---- #####
+args.nb_joints = 21 if args.dataname == 'kit' else 22
+
+val_loader = dataset_TM_eval.DATALoader(args.dataname, True, 32, w_vectorizer, unit_length=2**args.down_t)
+
+##### ---- Network ---- #####
+net = vqvae.HumanVQVAE(args, ## use args to define different parameters in different quantizers
+ args.nb_code,
+ args.code_dim,
+ args.output_emb_width,
+ args.down_t,
+ args.stride_t,
+ args.width,
+ args.depth,
+ args.dilation_growth_rate,
+ args.vq_act,
+ args.vq_norm)
+
+if args.resume_pth :
+ logger.info('loading checkpoint from {}'.format(args.resume_pth))
+ ckpt = torch.load(args.resume_pth, map_location='cpu')
+ net.load_state_dict(ckpt['net'], strict=True)
+net.train()
+net.cuda()
+
+fid = []
+div = []
+top1 = []
+top2 = []
+top3 = []
+matching = []
+repeat_time = 20
+for i in range(repeat_time):
+ best_fid, best_iter, best_div, best_top1, best_top2, best_top3, best_matching, writer, logger = eval_trans.evaluation_vqvae(args.out_dir, val_loader, net, logger, writer, 0, best_fid=1000, best_iter=0, best_div=100, best_top1=0, best_top2=0, best_top3=0, best_matching=100, eval_wrapper=eval_wrapper, draw=False, save=False, savenpy=(i==0))
+ fid.append(best_fid)
+ div.append(best_div)
+ top1.append(best_top1)
+ top2.append(best_top2)
+ top3.append(best_top3)
+ matching.append(best_matching)
+print('final result:')
+print('fid: ', sum(fid)/repeat_time)
+print('div: ', sum(div)/repeat_time)
+print('top1: ', sum(top1)/repeat_time)
+print('top2: ', sum(top2)/repeat_time)
+print('top3: ', sum(top3)/repeat_time)
+print('matching: ', sum(matching)/repeat_time)
+
+fid = np.array(fid)
+div = np.array(div)
+top1 = np.array(top1)
+top2 = np.array(top2)
+top3 = np.array(top3)
+matching = np.array(matching)
+msg_final = f"FID. {np.mean(fid):.3f}, conf. {np.std(fid)*1.96/np.sqrt(repeat_time):.3f}, Diversity. {np.mean(div):.3f}, conf. {np.std(div)*1.96/np.sqrt(repeat_time):.3f}, TOP1. {np.mean(top1):.3f}, conf. {np.std(top1)*1.96/np.sqrt(repeat_time):.3f}, TOP2. {np.mean(top2):.3f}, conf. {np.std(top2)*1.96/np.sqrt(repeat_time):.3f}, TOP3. {np.mean(top3):.3f}, conf. {np.std(top3)*1.96/np.sqrt(repeat_time):.3f}, Matching. {np.mean(matching):.3f}, conf. {np.std(matching)*1.96/np.sqrt(repeat_time):.3f}"
+logger.info(msg_final)
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/__init__.py b/MuseV/MMCM/mmcm/t2p/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/t2p/dataset/dataset_TM_eval.py b/MuseV/MMCM/mmcm/t2p/dataset/dataset_TM_eval.py
new file mode 100644
index 0000000000000000000000000000000000000000..576a53b7dabd8095bed59dcc86199e30f2798838
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/dataset/dataset_TM_eval.py
@@ -0,0 +1,217 @@
+import torch
+from torch.utils import data
+import numpy as np
+from os.path import join as pjoin
+import random
+import codecs as cs
+from tqdm import tqdm
+
+import utils.paramUtil as paramUtil
+from torch.utils.data._utils.collate import default_collate
+
+
+def collate_fn(batch):
+ batch.sort(key=lambda x: x[3], reverse=True)
+ return default_collate(batch)
+
+
+'''For use of training text-2-motion generative model'''
+class Text2MotionDataset(data.Dataset):
+ def __init__(self, dataset_name, is_test, w_vectorizer, feat_bias = 5, max_text_len = 20, unit_length = 4):
+
+ self.max_length = 20
+ self.pointer = 0
+ self.dataset_name = dataset_name
+ self.is_test = is_test
+ self.max_text_len = max_text_len
+ self.unit_length = unit_length
+ self.w_vectorizer = w_vectorizer
+ if dataset_name == 't2m':
+ self.data_root = './dataset/HumanML3D'
+ self.motion_dir = pjoin(self.data_root, 'new_joint_vecs')
+ self.text_dir = pjoin(self.data_root, 'texts')
+ self.joints_num = 22
+ radius = 4
+ fps = 20
+ self.max_motion_length = 196
+ dim_pose = 263
+ kinematic_chain = paramUtil.t2m_kinematic_chain
+ self.meta_dir = 'checkpoints/t2m/VQVAEV3_CB1024_CMT_H1024_NRES3/meta'
+ elif dataset_name == 'kit':
+ self.data_root = './dataset/KIT-ML'
+ self.motion_dir = pjoin(self.data_root, 'new_joint_vecs')
+ self.text_dir = pjoin(self.data_root, 'texts')
+ self.joints_num = 21
+ radius = 240 * 8
+ fps = 12.5
+ dim_pose = 251
+ self.max_motion_length = 196
+ kinematic_chain = paramUtil.kit_kinematic_chain
+ self.meta_dir = 'checkpoints/kit/VQVAEV3_CB1024_CMT_H1024_NRES3/meta'
+
+ mean = np.load(pjoin(self.meta_dir, 'mean.npy'))
+ std = np.load(pjoin(self.meta_dir, 'std.npy'))
+
+ if is_test:
+ split_file = pjoin(self.data_root, 'test.txt')
+ else:
+ split_file = pjoin(self.data_root, 'val.txt')
+
+ min_motion_len = 40 if self.dataset_name =='t2m' else 24
+ # min_motion_len = 64
+
+ joints_num = self.joints_num
+
+ data_dict = {}
+ id_list = []
+ with cs.open(split_file, 'r') as f:
+ for line in f.readlines():
+ id_list.append(line.strip())
+
+ new_name_list = []
+ length_list = []
+ for name in tqdm(id_list):
+ try:
+ motion = np.load(pjoin(self.motion_dir, name + '.npy'))
+ if (len(motion)) < min_motion_len or (len(motion) >= 200):
+ continue
+ text_data = []
+ flag = False
+ with cs.open(pjoin(self.text_dir, name + '.txt')) as f:
+ for line in f.readlines():
+ text_dict = {}
+ line_split = line.strip().split('#')
+ caption = line_split[0]
+ tokens = line_split[1].split(' ')
+ f_tag = float(line_split[2])
+ to_tag = float(line_split[3])
+ f_tag = 0.0 if np.isnan(f_tag) else f_tag
+ to_tag = 0.0 if np.isnan(to_tag) else to_tag
+
+ text_dict['caption'] = caption
+ text_dict['tokens'] = tokens
+ if f_tag == 0.0 and to_tag == 0.0:
+ flag = True
+ text_data.append(text_dict)
+ else:
+ try:
+ n_motion = motion[int(f_tag*fps) : int(to_tag*fps)]
+ if (len(n_motion)) < min_motion_len or (len(n_motion) >= 200):
+ continue
+ new_name = random.choice('ABCDEFGHIJKLMNOPQRSTUVW') + '_' + name
+ while new_name in data_dict:
+ new_name = random.choice('ABCDEFGHIJKLMNOPQRSTUVW') + '_' + name
+ data_dict[new_name] = {'motion': n_motion,
+ 'length': len(n_motion),
+ 'text':[text_dict]}
+ new_name_list.append(new_name)
+ length_list.append(len(n_motion))
+ except:
+ print(line_split)
+ print(line_split[2], line_split[3], f_tag, to_tag, name)
+ # break
+
+ if flag:
+ data_dict[name] = {'motion': motion,
+ 'length': len(motion),
+ 'text': text_data}
+ new_name_list.append(name)
+ length_list.append(len(motion))
+ except Exception as e:
+ # print(e)
+ pass
+
+ name_list, length_list = zip(*sorted(zip(new_name_list, length_list), key=lambda x: x[1]))
+ self.mean = mean
+ self.std = std
+ self.length_arr = np.array(length_list)
+ self.data_dict = data_dict
+ self.name_list = name_list
+ self.reset_max_len(self.max_length)
+
+ def reset_max_len(self, length):
+ assert length <= self.max_motion_length
+ self.pointer = np.searchsorted(self.length_arr, length)
+ print("Pointer Pointing at %d"%self.pointer)
+ self.max_length = length
+
+ def inv_transform(self, data):
+ return data * self.std + self.mean
+
+ def forward_transform(self, data):
+ return (data - self.mean) / self.std
+
+ def __len__(self):
+ return len(self.data_dict) - self.pointer
+
+ def __getitem__(self, item):
+ idx = self.pointer + item
+ name = self.name_list[idx]
+ data = self.data_dict[name]
+ # data = self.data_dict[self.name_list[idx]]
+ motion, m_length, text_list = data['motion'], data['length'], data['text']
+ # Randomly select a caption
+ text_data = random.choice(text_list)
+ caption, tokens = text_data['caption'], text_data['tokens']
+
+ if len(tokens) < self.max_text_len:
+ # pad with "unk"
+ tokens = ['sos/OTHER'] + tokens + ['eos/OTHER']
+ sent_len = len(tokens)
+ tokens = tokens + ['unk/OTHER'] * (self.max_text_len + 2 - sent_len)
+ else:
+ # crop
+ tokens = tokens[:self.max_text_len]
+ tokens = ['sos/OTHER'] + tokens + ['eos/OTHER']
+ sent_len = len(tokens)
+ pos_one_hots = []
+ word_embeddings = []
+ for token in tokens:
+ word_emb, pos_oh = self.w_vectorizer[token]
+ pos_one_hots.append(pos_oh[None, :])
+ word_embeddings.append(word_emb[None, :])
+ pos_one_hots = np.concatenate(pos_one_hots, axis=0)
+ word_embeddings = np.concatenate(word_embeddings, axis=0)
+
+ if self.unit_length < 10:
+ coin2 = np.random.choice(['single', 'single', 'double'])
+ else:
+ coin2 = 'single'
+
+ if coin2 == 'double':
+ m_length = (m_length // self.unit_length - 1) * self.unit_length
+ elif coin2 == 'single':
+ m_length = (m_length // self.unit_length) * self.unit_length
+ idx = random.randint(0, len(motion) - m_length)
+ motion = motion[idx:idx+m_length]
+
+ "Z Normalization"
+ motion = (motion - self.mean) / self.std
+
+ if m_length < self.max_motion_length:
+ motion = np.concatenate([motion,
+ np.zeros((self.max_motion_length - m_length, motion.shape[1]))
+ ], axis=0)
+
+ return word_embeddings, pos_one_hots, caption, sent_len, motion, m_length, '_'.join(tokens), name
+
+
+
+
+def DATALoader(dataset_name, is_test,
+ batch_size, w_vectorizer,
+ num_workers = 8, unit_length = 4) :
+
+ val_loader = torch.utils.data.DataLoader(Text2MotionDataset(dataset_name, is_test, w_vectorizer, unit_length=unit_length),
+ batch_size,
+ shuffle = True,
+ num_workers=num_workers,
+ collate_fn=collate_fn,
+ drop_last = True)
+ return val_loader
+
+
+def cycle(iterable):
+ while True:
+ for x in iterable:
+ yield x
diff --git a/MuseV/MMCM/mmcm/t2p/dataset/dataset_TM_train.py b/MuseV/MMCM/mmcm/t2p/dataset/dataset_TM_train.py
new file mode 100644
index 0000000000000000000000000000000000000000..0b0223effb01c1cf57fa6b2b6fb8d9d01b83f84a
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/dataset/dataset_TM_train.py
@@ -0,0 +1,161 @@
+import torch
+from torch.utils import data
+import numpy as np
+from os.path import join as pjoin
+import random
+import codecs as cs
+from tqdm import tqdm
+import utils.paramUtil as paramUtil
+from torch.utils.data._utils.collate import default_collate
+
+
+def collate_fn(batch):
+ batch.sort(key=lambda x: x[3], reverse=True)
+ return default_collate(batch)
+
+
+'''For use of training text-2-motion generative model'''
+class Text2MotionDataset(data.Dataset):
+ def __init__(self, dataset_name, feat_bias = 5, unit_length = 4, codebook_size = 1024, tokenizer_name=None):
+
+ self.max_length = 64
+ self.pointer = 0
+ self.dataset_name = dataset_name
+
+ self.unit_length = unit_length
+ # self.mot_start_idx = codebook_size
+ self.mot_end_idx = codebook_size
+ self.mot_pad_idx = codebook_size + 1
+ if dataset_name == 't2m':
+ self.data_root = './dataset/HumanML3D'
+ self.motion_dir = pjoin(self.data_root, 'new_joint_vecs')
+ self.text_dir = pjoin(self.data_root, 'texts')
+ self.joints_num = 22
+ radius = 4
+ fps = 20
+ self.max_motion_length = 26 if unit_length == 8 else 51
+ dim_pose = 263
+ kinematic_chain = paramUtil.t2m_kinematic_chain
+ elif dataset_name == 'kit':
+ self.data_root = './dataset/KIT-ML'
+ self.motion_dir = pjoin(self.data_root, 'new_joint_vecs')
+ self.text_dir = pjoin(self.data_root, 'texts')
+ self.joints_num = 21
+ radius = 240 * 8
+ fps = 12.5
+ dim_pose = 251
+ self.max_motion_length = 26 if unit_length == 8 else 51
+ kinematic_chain = paramUtil.kit_kinematic_chain
+
+ split_file = pjoin(self.data_root, 'train.txt')
+
+
+ id_list = []
+ with cs.open(split_file, 'r') as f:
+ for line in f.readlines():
+ id_list.append(line.strip())
+
+ new_name_list = []
+ data_dict = {}
+ for name in tqdm(id_list):
+ try:
+ m_token_list = np.load(pjoin(self.data_root, tokenizer_name, '%s.npy'%name))
+
+ # Read text
+ with cs.open(pjoin(self.text_dir, name + '.txt')) as f:
+ text_data = []
+ flag = False
+ lines = f.readlines()
+
+ for line in lines:
+ try:
+ text_dict = {}
+ line_split = line.strip().split('#')
+ caption = line_split[0]
+ t_tokens = line_split[1].split(' ')
+ f_tag = float(line_split[2])
+ to_tag = float(line_split[3])
+ f_tag = 0.0 if np.isnan(f_tag) else f_tag
+ to_tag = 0.0 if np.isnan(to_tag) else to_tag
+
+ text_dict['caption'] = caption
+ text_dict['tokens'] = t_tokens
+ if f_tag == 0.0 and to_tag == 0.0:
+ flag = True
+ text_data.append(text_dict)
+ else:
+ m_token_list_new = [tokens[int(f_tag*fps/unit_length) : int(to_tag*fps/unit_length)] for tokens in m_token_list if int(f_tag*fps/unit_length) < int(to_tag*fps/unit_length)]
+
+ if len(m_token_list_new) == 0:
+ continue
+ new_name = '%s_%f_%f'%(name, f_tag, to_tag)
+
+ data_dict[new_name] = {'m_token_list': m_token_list_new,
+ 'text':[text_dict]}
+ new_name_list.append(new_name)
+ except:
+ pass
+
+ if flag:
+ data_dict[name] = {'m_token_list': m_token_list,
+ 'text':text_data}
+ new_name_list.append(name)
+ except:
+ pass
+ self.data_dict = data_dict
+ self.name_list = new_name_list
+
+ def __len__(self):
+ return len(self.data_dict)
+
+ def __getitem__(self, item):
+ data = self.data_dict[self.name_list[item]]
+ m_token_list, text_list = data['m_token_list'], data['text']
+ m_tokens = random.choice(m_token_list)
+
+ text_data = random.choice(text_list)
+ caption= text_data['caption']
+
+
+ coin = np.random.choice([False, False, True])
+ # print(len(m_tokens))
+ if coin:
+ # drop one token at the head or tail
+ coin2 = np.random.choice([True, False])
+ if coin2:
+ m_tokens = m_tokens[:-1]
+ else:
+ m_tokens = m_tokens[1:]
+ m_tokens_len = m_tokens.shape[0]
+
+ if m_tokens_len+1 < self.max_motion_length:
+ m_tokens = np.concatenate([m_tokens, np.ones((1), dtype=int) * self.mot_end_idx, np.ones((self.max_motion_length-1-m_tokens_len), dtype=int) * self.mot_pad_idx], axis=0)
+ else:
+ m_tokens = np.concatenate([m_tokens, np.ones((1), dtype=int) * self.mot_end_idx], axis=0)
+
+ return caption, m_tokens.reshape(-1), m_tokens_len
+
+
+
+
+def DATALoader(dataset_name,
+ batch_size, codebook_size, tokenizer_name, unit_length=4,
+ num_workers = 8) :
+
+ train_loader = torch.utils.data.DataLoader(Text2MotionDataset(dataset_name, codebook_size = codebook_size, tokenizer_name = tokenizer_name, unit_length=unit_length),
+ batch_size,
+ shuffle=True,
+ num_workers=num_workers,
+ #collate_fn=collate_fn,
+ drop_last = True)
+
+
+ return train_loader
+
+
+def cycle(iterable):
+ while True:
+ for x in iterable:
+ yield x
+
+
diff --git a/MuseV/MMCM/mmcm/t2p/dataset/dataset_VQ.py b/MuseV/MMCM/mmcm/t2p/dataset/dataset_VQ.py
new file mode 100644
index 0000000000000000000000000000000000000000..2342de946f2cbdf64729a5145168df1bdda54fa0
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/dataset/dataset_VQ.py
@@ -0,0 +1,109 @@
+import torch
+from torch.utils import data
+import numpy as np
+from os.path import join as pjoin
+import random
+import codecs as cs
+from tqdm import tqdm
+
+
+
+class VQMotionDataset(data.Dataset):
+ def __init__(self, dataset_name, window_size = 64, unit_length = 4):
+ self.window_size = window_size
+ self.unit_length = unit_length
+ self.dataset_name = dataset_name
+
+ if dataset_name == 't2m':
+ self.data_root = './dataset/HumanML3D'
+ self.motion_dir = pjoin(self.data_root, 'new_joint_vecs')
+ self.text_dir = pjoin(self.data_root, 'texts')
+ self.joints_num = 22
+ self.max_motion_length = 196
+ self.meta_dir = 'checkpoints/t2m/VQVAEV3_CB1024_CMT_H1024_NRES3/meta'
+
+ elif dataset_name == 'kit':
+ self.data_root = './dataset/KIT-ML'
+ self.motion_dir = pjoin(self.data_root, 'new_joint_vecs')
+ self.text_dir = pjoin(self.data_root, 'texts')
+ self.joints_num = 21
+
+ self.max_motion_length = 196
+ self.meta_dir = 'checkpoints/kit/VQVAEV3_CB1024_CMT_H1024_NRES3/meta'
+
+ joints_num = self.joints_num
+
+ mean = np.load(pjoin(self.meta_dir, 'mean.npy'))
+ std = np.load(pjoin(self.meta_dir, 'std.npy'))
+
+ split_file = pjoin(self.data_root, 'train.txt')
+
+ self.data = []
+ self.lengths = []
+ id_list = []
+ with cs.open(split_file, 'r') as f:
+ for line in f.readlines():
+ id_list.append(line.strip())
+
+ for name in tqdm(id_list):
+ try:
+ motion = np.load(pjoin(self.motion_dir, name + '.npy'))
+ if motion.shape[0] < self.window_size:
+ continue
+ self.lengths.append(motion.shape[0] - self.window_size)
+ self.data.append(motion)
+ except:
+ # Some motion may not exist in KIT dataset
+ pass
+
+
+ self.mean = mean
+ self.std = std
+ print("Total number of motions {}".format(len(self.data)))
+
+ def inv_transform(self, data):
+ return data * self.std + self.mean
+
+ def compute_sampling_prob(self) :
+
+ prob = np.array(self.lengths, dtype=np.float32)
+ prob /= np.sum(prob)
+ return prob
+
+ def __len__(self):
+ return len(self.data)
+
+ def __getitem__(self, item):
+ motion = self.data[item]
+
+ idx = random.randint(0, len(motion) - self.window_size)
+
+ motion = motion[idx:idx+self.window_size]
+ "Z Normalization"
+ motion = (motion - self.mean) / self.std
+
+ return motion
+
+def DATALoader(dataset_name,
+ batch_size,
+ num_workers = 8,
+ window_size = 64,
+ unit_length = 4):
+
+ trainSet = VQMotionDataset(dataset_name, window_size=window_size, unit_length=unit_length)
+ prob = trainSet.compute_sampling_prob()
+ sampler = torch.utils.data.WeightedRandomSampler(prob, num_samples = len(trainSet) * 1000, replacement=True)
+ train_loader = torch.utils.data.DataLoader(trainSet,
+ batch_size,
+ shuffle=True,
+ #sampler=sampler,
+ num_workers=num_workers,
+ #collate_fn=collate_fn,
+ drop_last = True)
+
+ return train_loader
+
+def cycle(iterable):
+ while True:
+ for x in iterable:
+ yield x
diff --git a/MuseV/MMCM/mmcm/t2p/dataset/dataset_tokenize.py b/MuseV/MMCM/mmcm/t2p/dataset/dataset_tokenize.py
new file mode 100644
index 0000000000000000000000000000000000000000..641a02a75f2cfaadea45851cad2a95b39bfa1eae
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/dataset/dataset_tokenize.py
@@ -0,0 +1,117 @@
+import torch
+from torch.utils import data
+import numpy as np
+from os.path import join as pjoin
+import random
+import codecs as cs
+from tqdm import tqdm
+
+
+
+class VQMotionDataset(data.Dataset):
+ def __init__(self, dataset_name, feat_bias = 5, window_size = 64, unit_length = 8):
+ self.window_size = window_size
+ self.unit_length = unit_length
+ self.feat_bias = feat_bias
+
+ self.dataset_name = dataset_name
+ min_motion_len = 40 if dataset_name =='t2m' else 24
+
+ if dataset_name == 't2m':
+ self.data_root = './dataset/HumanML3D'
+ self.motion_dir = pjoin(self.data_root, 'new_joint_vecs')
+ self.text_dir = pjoin(self.data_root, 'texts')
+ self.joints_num = 22
+ radius = 4
+ fps = 20
+ self.max_motion_length = 196
+ dim_pose = 263
+ self.meta_dir = 'checkpoints/t2m/VQVAEV3_CB1024_CMT_H1024_NRES3/meta'
+ #kinematic_chain = paramUtil.t2m_kinematic_chain
+ elif dataset_name == 'kit':
+ self.data_root = './dataset/KIT-ML'
+ self.motion_dir = pjoin(self.data_root, 'new_joint_vecs')
+ self.text_dir = pjoin(self.data_root, 'texts')
+ self.joints_num = 21
+ radius = 240 * 8
+ fps = 12.5
+ dim_pose = 251
+ self.max_motion_length = 196
+ self.meta_dir = 'checkpoints/kit/VQVAEV3_CB1024_CMT_H1024_NRES3/meta'
+ #kinematic_chain = paramUtil.kit_kinematic_chain
+
+ joints_num = self.joints_num
+
+ mean = np.load(pjoin(self.meta_dir, 'mean.npy'))
+ std = np.load(pjoin(self.meta_dir, 'std.npy'))
+
+ split_file = pjoin(self.data_root, 'train.txt')
+
+ data_dict = {}
+ id_list = []
+ with cs.open(split_file, 'r') as f:
+ for line in f.readlines():
+ id_list.append(line.strip())
+
+ new_name_list = []
+ length_list = []
+ for name in tqdm(id_list):
+ try:
+ motion = np.load(pjoin(self.motion_dir, name + '.npy'))
+ if (len(motion)) < min_motion_len or (len(motion) >= 200):
+ continue
+
+ data_dict[name] = {'motion': motion,
+ 'length': len(motion),
+ 'name': name}
+ new_name_list.append(name)
+ length_list.append(len(motion))
+ except:
+ # Some motion may not exist in KIT dataset
+ pass
+
+
+ self.mean = mean
+ self.std = std
+ self.length_arr = np.array(length_list)
+ self.data_dict = data_dict
+ self.name_list = new_name_list
+
+ def inv_transform(self, data):
+ return data * self.std + self.mean
+
+ def __len__(self):
+ return len(self.data_dict)
+
+ def __getitem__(self, item):
+ name = self.name_list[item]
+ data = self.data_dict[name]
+ motion, m_length = data['motion'], data['length']
+
+ m_length = (m_length // self.unit_length) * self.unit_length
+
+ idx = random.randint(0, len(motion) - m_length)
+ motion = motion[idx:idx+m_length]
+
+ "Z Normalization"
+ motion = (motion - self.mean) / self.std
+
+ return motion, name
+
+def DATALoader(dataset_name,
+ batch_size = 1,
+ num_workers = 8, unit_length = 4) :
+
+ train_loader = torch.utils.data.DataLoader(VQMotionDataset(dataset_name, unit_length=unit_length),
+ batch_size,
+ shuffle=True,
+ num_workers=num_workers,
+ #collate_fn=collate_fn,
+ drop_last = True)
+
+ return train_loader
+
+def cycle(iterable):
+ while True:
+ for x in iterable:
+ yield x
diff --git a/MuseV/MMCM/mmcm/t2p/dataset/prepare/download_extractor.sh b/MuseV/MMCM/mmcm/t2p/dataset/prepare/download_extractor.sh
new file mode 100644
index 0000000000000000000000000000000000000000..d6f8a14a437687f6f10bb7bc08cd073a0884ca16
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/dataset/prepare/download_extractor.sh
@@ -0,0 +1,15 @@
+rm -rf checkpoints
+mkdir checkpoints
+cd checkpoints
+echo -e "Downloading extractors"
+gdown --fuzzy https://drive.google.com/file/d/1o7RTDQcToJjTm9_mNWTyzvZvjTWpZfug/view
+gdown --fuzzy https://drive.google.com/file/d/1KNU8CsMAnxFrwopKBBkC8jEULGLPBHQp/view
+
+
+unzip t2m.zip
+unzip kit.zip
+
+echo -e "Cleaning\n"
+rm t2m.zip
+rm kit.zip
+echo -e "Downloading done!"
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/dataset/prepare/download_glove.sh b/MuseV/MMCM/mmcm/t2p/dataset/prepare/download_glove.sh
new file mode 100644
index 0000000000000000000000000000000000000000..058599aa32c9c97e0e3fc0a9658822e9c904955a
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/dataset/prepare/download_glove.sh
@@ -0,0 +1,9 @@
+echo -e "Downloading glove (in use by the evaluators)"
+gdown --fuzzy https://drive.google.com/file/d/1bCeS6Sh_mLVTebxIgiUHgdPrroW06mb6/view?usp=sharing
+rm -rf glove
+
+unzip glove.zip
+echo -e "Cleaning\n"
+rm glove.zip
+
+echo -e "Downloading done!"
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/dataset/prepare/download_model.sh b/MuseV/MMCM/mmcm/t2p/dataset/prepare/download_model.sh
new file mode 100644
index 0000000000000000000000000000000000000000..da32436f6efa93e0c14e1dd52f97068bd75956ab
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/dataset/prepare/download_model.sh
@@ -0,0 +1,12 @@
+
+mkdir -p pretrained
+cd pretrained/
+
+echo -e "The pretrained model files will be stored in the 'pretrained' folder\n"
+gdown 1LaOvwypF-jM2Axnq5dc-Iuvv3w_G-WDE
+
+unzip VQTrans_pretrained.zip
+echo -e "Cleaning\n"
+rm VQTrans_pretrained.zip
+
+echo -e "Downloading done!"
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/dataset/prepare/download_smpl.sh b/MuseV/MMCM/mmcm/t2p/dataset/prepare/download_smpl.sh
new file mode 100644
index 0000000000000000000000000000000000000000..411325b509e891d96b859bf28f7b983005ca360a
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/dataset/prepare/download_smpl.sh
@@ -0,0 +1,13 @@
+
+mkdir -p body_models
+cd body_models/
+
+echo -e "The smpl files will be stored in the 'body_models/smpl/' folder\n"
+gdown 1INYlGA76ak_cKGzvpOV2Pe6RkYTlXTW2
+rm -rf smpl
+
+unzip smpl.zip
+echo -e "Cleaning\n"
+rm smpl.zip
+
+echo -e "Downloading done!"
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/environment.yml b/MuseV/MMCM/mmcm/t2p/environment.yml
new file mode 100755
index 0000000000000000000000000000000000000000..3acca42a39129dc722810eaa0f35a8c79952896f
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/environment.yml
@@ -0,0 +1,121 @@
+name: T2M-GPT
+channels:
+ - pytorch
+ - defaults
+dependencies:
+ - _libgcc_mutex=0.1=main
+ - _openmp_mutex=4.5=1_gnu
+ - blas=1.0=mkl
+ - bzip2=1.0.8=h7b6447c_0
+ - ca-certificates=2021.7.5=h06a4308_1
+ - certifi=2021.5.30=py38h06a4308_0
+ - cudatoolkit=10.1.243=h6bb024c_0
+ - ffmpeg=4.3=hf484d3e_0
+ - freetype=2.10.4=h5ab3b9f_0
+ - gmp=6.2.1=h2531618_2
+ - gnutls=3.6.15=he1e5248_0
+ - intel-openmp=2021.3.0=h06a4308_3350
+ - jpeg=9b=h024ee3a_2
+ - lame=3.100=h7b6447c_0
+ - lcms2=2.12=h3be6417_0
+ - ld_impl_linux-64=2.35.1=h7274673_9
+ - libffi=3.3=he6710b0_2
+ - libgcc-ng=9.3.0=h5101ec6_17
+ - libgomp=9.3.0=h5101ec6_17
+ - libiconv=1.15=h63c8f33_5
+ - libidn2=2.3.2=h7f8727e_0
+ - libpng=1.6.37=hbc83047_0
+ - libstdcxx-ng=9.3.0=hd4cf53a_17
+ - libtasn1=4.16.0=h27cfd23_0
+ - libtiff=4.2.0=h85742a9_0
+ - libunistring=0.9.10=h27cfd23_0
+ - libuv=1.40.0=h7b6447c_fxfi0
+ - libwebp-base=1.2.0=h27cfd23_0
+ - lz4-c=1.9.3=h295c915_1
+ - mkl=2021.3.0=h06a4308_520
+ - mkl-service=2.4.0=py38h7f8727e_0
+ - mkl_fft=1.3.0=py38h42c9631_2
+ - mkl_random=1.2.2=py38h51133e4_0
+ - ncurses=6.2=he6710b0_1
+ - nettle=3.7.3=hbbd107a_1
+ - ninja=1.10.2=hff7bd54_1
+ - numpy=1.20.3=py38hf144106_0
+ - numpy-base=1.20.3=py38h74d4b33_0
+ - olefile=0.46=py_0
+ - openh264=2.1.0=hd408876_0
+ - openjpeg=2.3.0=h05c96fa_1
+ - openssl=1.1.1k=h27cfd23_0
+ - pillow=8.3.1=py38h2c7a002_0
+ - pip=21.0.1=py38h06a4308_0
+ - python=3.8.11=h12debd9_0_cpython
+ - pytorch=1.8.1=py3.8_cuda10.1_cudnn7.6.3_0
+ - readline=8.1=h27cfd23_0
+ - setuptools=52.0.0=py38h06a4308_0
+ - six=1.16.0=pyhd3eb1b0_0
+ - sqlite=3.36.0=hc218d9a_0
+ - tk=8.6.10=hbc83047_0
+ - torchaudio=0.8.1=py38
+ - torchvision=0.9.1=py38_cu101
+ - typing_extensions=3.10.0.0=pyh06a4308_0
+ - wheel=0.37.0=pyhd3eb1b0_0
+ - xz=5.2.5=h7b6447c_0
+ - zlib=1.2.11=h7b6447c_3
+ - zstd=1.4.9=haebb681_0
+ - pip:
+ - absl-py==0.13.0
+ - backcall==0.2.0
+ - cachetools==4.2.2
+ - charset-normalizer==2.0.4
+ - chumpy==0.70
+ - cycler==0.10.0
+ - decorator==5.0.9
+ - google-auth==1.35.0
+ - google-auth-oauthlib==0.4.5
+ - grpcio==1.39.0
+ - idna==3.2
+ - imageio==2.9.0
+ - ipdb==0.13.9
+ - ipython==7.26.0
+ - ipython-genutils==0.2.0
+ - jedi==0.18.0
+ - joblib==1.0.1
+ - kiwisolver==1.3.1
+ - markdown==3.3.4
+ - matplotlib==3.4.3
+ - matplotlib-inline==0.1.2
+ - oauthlib==3.1.1
+ - pandas==1.3.2
+ - parso==0.8.2
+ - pexpect==4.8.0
+ - pickleshare==0.7.5
+ - prompt-toolkit==3.0.20
+ - protobuf==3.17.3
+ - ptyprocess==0.7.0
+ - pyasn1==0.4.8
+ - pyasn1-modules==0.2.8
+ - pygments==2.10.0
+ - pyparsing==2.4.7
+ - python-dateutil==2.8.2
+ - pytz==2021.1
+ - pyyaml==5.4.1
+ - requests==2.26.0
+ - requests-oauthlib==1.3.0
+ - rsa==4.7.2
+ - scikit-learn==0.24.2
+ - scipy==1.7.1
+ - sklearn==0.0
+ - smplx==0.1.28
+ - tensorboard==2.6.0
+ - tensorboard-data-server==0.6.1
+ - tensorboard-plugin-wit==1.8.0
+ - threadpoolctl==2.2.0
+ - toml==0.10.2
+ - tqdm==4.62.2
+ - traitlets==5.0.5
+ - urllib3==1.26.6
+ - wcwidth==0.2.5
+ - werkzeug==2.0.1
+ - git+https://mirrors.tencent.com/github.com/openai/CLIP.git
+ - git+https://mirrors.tencent.com/github.com/nghorbani/human_body_prior
+ - gdown
+ - moviepy
diff --git a/MuseV/MMCM/mmcm/t2p/example.gif b/MuseV/MMCM/mmcm/t2p/example.gif
new file mode 100755
index 0000000000000000000000000000000000000000..497963d34f4b0c06ae0a669d68a2a085107de1a7
Binary files /dev/null and b/MuseV/MMCM/mmcm/t2p/example.gif differ
diff --git a/MuseV/MMCM/mmcm/t2p/models/encdec.py b/MuseV/MMCM/mmcm/t2p/models/encdec.py
new file mode 100755
index 0000000000000000000000000000000000000000..7a42c66a56d295497617eb6dd3ff1b71ebb3c490
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/models/encdec.py
@@ -0,0 +1,67 @@
+import torch.nn as nn
+from .resnet import Resnet1D
+
+class Encoder(nn.Module):
+ def __init__(self,
+ input_emb_width = 3,
+ output_emb_width = 512,
+ down_t = 3,
+ stride_t = 2,
+ width = 512,
+ depth = 3,
+ dilation_growth_rate = 3,
+ activation='relu',
+ norm=None):
+ super().__init__()
+
+ blocks = []
+ filter_t, pad_t = stride_t * 2, stride_t // 2
+ blocks.append(nn.Conv1d(input_emb_width, width, 3, 1, 1))
+ blocks.append(nn.ReLU())
+
+ for i in range(down_t):
+ input_dim = width
+ block = nn.Sequential(
+ nn.Conv1d(input_dim, width, filter_t, stride_t, pad_t),
+ Resnet1D(width, depth, dilation_growth_rate, activation=activation, norm=norm),
+ )
+ blocks.append(block)
+ blocks.append(nn.Conv1d(width, output_emb_width, 3, 1, 1))
+ self.model = nn.Sequential(*blocks)
+
+ def forward(self, x):
+ return self.model(x)
+
+class Decoder(nn.Module):
+ def __init__(self,
+ input_emb_width = 3,
+ output_emb_width = 512,
+ down_t = 3,
+ stride_t = 2,
+ width = 512,
+ depth = 3,
+ dilation_growth_rate = 3,
+ activation='relu',
+ norm=None):
+ super().__init__()
+ blocks = []
+
+ filter_t, pad_t = stride_t * 2, stride_t // 2
+ blocks.append(nn.Conv1d(output_emb_width, width, 3, 1, 1))
+ blocks.append(nn.ReLU())
+ for i in range(down_t):
+ out_dim = width
+ block = nn.Sequential(
+ Resnet1D(width, depth, dilation_growth_rate, reverse_dilation=True, activation=activation, norm=norm),
+ nn.Upsample(scale_factor=2, mode='nearest'),
+ nn.Conv1d(width, out_dim, 3, 1, 1)
+ )
+ blocks.append(block)
+ blocks.append(nn.Conv1d(width, width, 3, 1, 1))
+ blocks.append(nn.ReLU())
+ blocks.append(nn.Conv1d(width, input_emb_width, 3, 1, 1))
+ self.model = nn.Sequential(*blocks)
+
+ def forward(self, x):
+ return self.model(x)
+
diff --git a/MuseV/MMCM/mmcm/t2p/models/evaluator_wrapper.py b/MuseV/MMCM/mmcm/t2p/models/evaluator_wrapper.py
new file mode 100755
index 0000000000000000000000000000000000000000..5ce1ea59963b140362fed59be9050a4c515b45ef
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/models/evaluator_wrapper.py
@@ -0,0 +1,92 @@
+
+import torch
+from os.path import join as pjoin
+import numpy as np
+from .modules import MovementConvEncoder, TextEncoderBiGRUCo, MotionEncoderBiGRUCo
+from ..utils.word_vectorizer import POS_enumerator
+
+def build_models(opt):
+ movement_enc = MovementConvEncoder(opt.dim_pose-4, opt.dim_movement_enc_hidden, opt.dim_movement_latent)
+ text_enc = TextEncoderBiGRUCo(word_size=opt.dim_word,
+ pos_size=opt.dim_pos_ohot,
+ hidden_size=opt.dim_text_hidden,
+ output_size=opt.dim_coemb_hidden,
+ device=opt.device)
+
+ motion_enc = MotionEncoderBiGRUCo(input_size=opt.dim_movement_latent,
+ hidden_size=opt.dim_motion_hidden,
+ output_size=opt.dim_coemb_hidden,
+ device=opt.device)
+
+ checkpoint = torch.load(pjoin(opt.checkpoints_dir, opt.dataset_name, 'text_mot_match', 'model', 'finest.tar'),
+ map_location=opt.device)
+ movement_enc.load_state_dict(checkpoint['movement_encoder'])
+ text_enc.load_state_dict(checkpoint['text_encoder'])
+ motion_enc.load_state_dict(checkpoint['motion_encoder'])
+ print('Loading Evaluation Model Wrapper (Epoch %d) Completed!!' % (checkpoint['epoch']))
+ return text_enc, motion_enc, movement_enc
+
+
+class EvaluatorModelWrapper(object):
+
+ def __init__(self, opt):
+
+ if opt.dataset_name == 't2m':
+ opt.dim_pose = 263
+ elif opt.dataset_name == 'kit':
+ opt.dim_pose = 251
+ else:
+ raise KeyError('Dataset not Recognized!!!')
+
+ opt.dim_word = 300
+ opt.max_motion_length = 196
+ opt.dim_pos_ohot = len(POS_enumerator)
+ opt.dim_motion_hidden = 1024
+ opt.max_text_len = 20
+ opt.dim_text_hidden = 512
+ opt.dim_coemb_hidden = 512
+
+ # print(opt)
+
+ self.text_encoder, self.motion_encoder, self.movement_encoder = build_models(opt)
+ self.opt = opt
+ self.device = opt.device
+
+ self.text_encoder.to(opt.device)
+ self.motion_encoder.to(opt.device)
+ self.movement_encoder.to(opt.device)
+
+ self.text_encoder.eval()
+ self.motion_encoder.eval()
+ self.movement_encoder.eval()
+
+ # Please note that the results does not following the order of inputs
+ def get_co_embeddings(self, word_embs, pos_ohot, cap_lens, motions, m_lens):
+ with torch.no_grad():
+ word_embs = word_embs.detach().to(self.device).float()
+ pos_ohot = pos_ohot.detach().to(self.device).float()
+ motions = motions.detach().to(self.device).float()
+
+ '''Movement Encoding'''
+ movements = self.movement_encoder(motions[..., :-4]).detach()
+ m_lens = m_lens // self.opt.unit_length
+ motion_embedding = self.motion_encoder(movements, m_lens)
+
+ '''Text Encoding'''
+ text_embedding = self.text_encoder(word_embs, pos_ohot, cap_lens)
+ return text_embedding, motion_embedding
+
+ # Please note that the results does not following the order of inputs
+ def get_motion_embeddings(self, motions, m_lens):
+ with torch.no_grad():
+ motions = motions.detach().to(self.device).float()
+
+ align_idx = np.argsort(m_lens.data.tolist())[::-1].copy()
+ motions = motions[align_idx]
+ m_lens = m_lens[align_idx]
+
+ '''Movement Encoding'''
+ movements = self.movement_encoder(motions[..., :-4]).detach()
+ m_lens = m_lens // self.opt.unit_length
+ motion_embedding = self.motion_encoder(movements, m_lens)
+ return motion_embedding
diff --git a/MuseV/MMCM/mmcm/t2p/models/modules.py b/MuseV/MMCM/mmcm/t2p/models/modules.py
new file mode 100755
index 0000000000000000000000000000000000000000..4f06cd98d4f6029bd3df073095cf50498483d54a
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/models/modules.py
@@ -0,0 +1,109 @@
+import torch
+import torch.nn as nn
+from torch.nn.utils.rnn import pack_padded_sequence
+
+def init_weight(m):
+ if isinstance(m, nn.Conv1d) or isinstance(m, nn.Linear) or isinstance(m, nn.ConvTranspose1d):
+ nn.init.xavier_normal_(m.weight)
+ # m.bias.data.fill_(0.01)
+ if m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+
+
+class MovementConvEncoder(nn.Module):
+ def __init__(self, input_size, hidden_size, output_size):
+ super(MovementConvEncoder, self).__init__()
+ self.main = nn.Sequential(
+ nn.Conv1d(input_size, hidden_size, 4, 2, 1),
+ nn.Dropout(0.2, inplace=True),
+ nn.LeakyReLU(0.2, inplace=True),
+ nn.Conv1d(hidden_size, output_size, 4, 2, 1),
+ nn.Dropout(0.2, inplace=True),
+ nn.LeakyReLU(0.2, inplace=True),
+ )
+ self.out_net = nn.Linear(output_size, output_size)
+ self.main.apply(init_weight)
+ self.out_net.apply(init_weight)
+
+ def forward(self, inputs):
+ inputs = inputs.permute(0, 2, 1)
+ outputs = self.main(inputs).permute(0, 2, 1)
+ # print(outputs.shape)
+ return self.out_net(outputs)
+
+
+
+class TextEncoderBiGRUCo(nn.Module):
+ def __init__(self, word_size, pos_size, hidden_size, output_size, device):
+ super(TextEncoderBiGRUCo, self).__init__()
+ self.device = device
+
+ self.pos_emb = nn.Linear(pos_size, word_size)
+ self.input_emb = nn.Linear(word_size, hidden_size)
+ self.gru = nn.GRU(hidden_size, hidden_size, batch_first=True, bidirectional=True)
+ self.output_net = nn.Sequential(
+ nn.Linear(hidden_size * 2, hidden_size),
+ nn.LayerNorm(hidden_size),
+ nn.LeakyReLU(0.2, inplace=True),
+ nn.Linear(hidden_size, output_size)
+ )
+
+ self.input_emb.apply(init_weight)
+ self.pos_emb.apply(init_weight)
+ self.output_net.apply(init_weight)
+ self.hidden_size = hidden_size
+ self.hidden = nn.Parameter(torch.randn((2, 1, self.hidden_size), requires_grad=True))
+
+ # input(batch_size, seq_len, dim)
+ def forward(self, word_embs, pos_onehot, cap_lens):
+ num_samples = word_embs.shape[0]
+
+ pos_embs = self.pos_emb(pos_onehot)
+ inputs = word_embs + pos_embs
+ input_embs = self.input_emb(inputs)
+ hidden = self.hidden.repeat(1, num_samples, 1)
+
+ cap_lens = cap_lens.data.tolist()
+ emb = pack_padded_sequence(input_embs, cap_lens, batch_first=True)
+
+ gru_seq, gru_last = self.gru(emb, hidden)
+
+ gru_last = torch.cat([gru_last[0], gru_last[1]], dim=-1)
+
+ return self.output_net(gru_last)
+
+
+class MotionEncoderBiGRUCo(nn.Module):
+ def __init__(self, input_size, hidden_size, output_size, device):
+ super(MotionEncoderBiGRUCo, self).__init__()
+ self.device = device
+
+ self.input_emb = nn.Linear(input_size, hidden_size)
+ self.gru = nn.GRU(hidden_size, hidden_size, batch_first=True, bidirectional=True)
+ self.output_net = nn.Sequential(
+ nn.Linear(hidden_size*2, hidden_size),
+ nn.LayerNorm(hidden_size),
+ nn.LeakyReLU(0.2, inplace=True),
+ nn.Linear(hidden_size, output_size)
+ )
+
+ self.input_emb.apply(init_weight)
+ self.output_net.apply(init_weight)
+ self.hidden_size = hidden_size
+ self.hidden = nn.Parameter(torch.randn((2, 1, self.hidden_size), requires_grad=True))
+
+ # input(batch_size, seq_len, dim)
+ def forward(self, inputs, m_lens):
+ num_samples = inputs.shape[0]
+
+ input_embs = self.input_emb(inputs)
+ hidden = self.hidden.repeat(1, num_samples, 1)
+
+ cap_lens = m_lens.data.tolist()
+ emb = pack_padded_sequence(input_embs, cap_lens, batch_first=True, enforce_sorted=False)
+
+ gru_seq, gru_last = self.gru(emb, hidden)
+
+ gru_last = torch.cat([gru_last[0], gru_last[1]], dim=-1)
+
+ return self.output_net(gru_last)
diff --git a/MuseV/MMCM/mmcm/t2p/models/pos_encoding.py b/MuseV/MMCM/mmcm/t2p/models/pos_encoding.py
new file mode 100755
index 0000000000000000000000000000000000000000..066be3e1f8a1636f7eaabd1c534b9c618ee3e9f8
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/models/pos_encoding.py
@@ -0,0 +1,43 @@
+"""
+Various positional encodings for the transformer.
+"""
+import math
+import torch
+from torch import nn
+
+def PE1d_sincos(seq_length, dim):
+ """
+ :param d_model: dimension of the model
+ :param length: length of positions
+ :return: length*d_model position matrix
+ """
+ if dim % 2 != 0:
+ raise ValueError("Cannot use sin/cos positional encoding with "
+ "odd dim (got dim={:d})".format(dim))
+ pe = torch.zeros(seq_length, dim)
+ position = torch.arange(0, seq_length).unsqueeze(1)
+ div_term = torch.exp((torch.arange(0, dim, 2, dtype=torch.float) *
+ -(math.log(10000.0) / dim)))
+ pe[:, 0::2] = torch.sin(position.float() * div_term)
+ pe[:, 1::2] = torch.cos(position.float() * div_term)
+
+ return pe.unsqueeze(1)
+
+
+class PositionEmbedding(nn.Module):
+ """
+ Absolute pos embedding (standard), learned.
+ """
+ def __init__(self, seq_length, dim, dropout, grad=False):
+ super().__init__()
+ self.embed = nn.Parameter(data=PE1d_sincos(seq_length, dim), requires_grad=grad)
+ self.dropout = nn.Dropout(p=dropout)
+
+ def forward(self, x):
+ # x.shape: bs, seq_len, feat_dim
+ l = x.shape[1]
+ x = x.permute(1, 0, 2) + self.embed[:l].expand(x.permute(1, 0, 2).shape)
+ x = self.dropout(x.permute(1, 0, 2))
+ return x
+
+
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/models/quantize_cnn.py b/MuseV/MMCM/mmcm/t2p/models/quantize_cnn.py
new file mode 100755
index 0000000000000000000000000000000000000000..8cd3ecddb8f8f07bdb4ae6f963c3a401c6bb1ef3
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/models/quantize_cnn.py
@@ -0,0 +1,413 @@
+import numpy as np
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+class QuantizeEMAReset(nn.Module):
+ def __init__(self, nb_code, code_dim, args):
+ super().__init__()
+ self.nb_code = nb_code
+ self.code_dim = code_dim
+ self.mu = args.mu
+ self.reset_codebook()
+
+ def reset_codebook(self):
+ self.init = False
+ self.code_sum = None
+ self.code_count = None
+ self.register_buffer('codebook', torch.zeros(self.nb_code, self.code_dim).cuda())
+
+ def _tile(self, x):
+ nb_code_x, code_dim = x.shape
+ if nb_code_x < self.nb_code:
+ n_repeats = (self.nb_code + nb_code_x - 1) // nb_code_x
+ std = 0.01 / np.sqrt(code_dim)
+ out = x.repeat(n_repeats, 1)
+ out = out + torch.randn_like(out) * std
+ else :
+ out = x
+ return out
+
+ def init_codebook(self, x):
+ out = self._tile(x)
+ self.codebook = out[:self.nb_code]
+ self.code_sum = self.codebook.clone()
+ self.code_count = torch.ones(self.nb_code, device=self.codebook.device)
+ self.init = True
+
+ @torch.no_grad()
+ def compute_perplexity(self, code_idx) :
+ # Calculate new centres
+ code_onehot = torch.zeros(self.nb_code, code_idx.shape[0], device=code_idx.device) # nb_code, N * L
+ code_onehot.scatter_(0, code_idx.view(1, code_idx.shape[0]), 1)
+
+ code_count = code_onehot.sum(dim=-1) # nb_code
+ prob = code_count / torch.sum(code_count)
+ perplexity = torch.exp(-torch.sum(prob * torch.log(prob + 1e-7)))
+ return perplexity
+
+ @torch.no_grad()
+ def update_codebook(self, x, code_idx):
+
+ code_onehot = torch.zeros(self.nb_code, x.shape[0], device=x.device) # nb_code, N * L
+ code_onehot.scatter_(0, code_idx.view(1, x.shape[0]), 1)
+
+ code_sum = torch.matmul(code_onehot, x) # nb_code, w
+ code_count = code_onehot.sum(dim=-1) # nb_code
+
+ out = self._tile(x)
+ code_rand = out[:self.nb_code]
+
+ # Update centres
+ self.code_sum = self.mu * self.code_sum + (1. - self.mu) * code_sum # w, nb_code
+ self.code_count = self.mu * self.code_count + (1. - self.mu) * code_count # nb_code
+
+ usage = (self.code_count.view(self.nb_code, 1) >= 1.0).float()
+ code_update = self.code_sum.view(self.nb_code, self.code_dim) / self.code_count.view(self.nb_code, 1)
+
+ self.codebook = usage * code_update + (1 - usage) * code_rand
+ prob = code_count / torch.sum(code_count)
+ perplexity = torch.exp(-torch.sum(prob * torch.log(prob + 1e-7)))
+
+
+ return perplexity
+
+ def preprocess(self, x):
+ # NCT -> NTC -> [NT, C]
+ x = x.permute(0, 2, 1).contiguous()
+ x = x.view(-1, x.shape[-1])
+ return x
+
+ def quantize(self, x):
+ # Calculate latent code x_l
+ k_w = self.codebook.t()
+ distance = torch.sum(x ** 2, dim=-1, keepdim=True) - 2 * torch.matmul(x, k_w) + torch.sum(k_w ** 2, dim=0,
+ keepdim=True) # (N * L, b)
+ _, code_idx = torch.min(distance, dim=-1)
+ return code_idx
+
+ def dequantize(self, code_idx):
+ x = F.embedding(code_idx, self.codebook)
+ return x
+
+
+ def forward(self, x):
+ N, width, T = x.shape
+
+ # Preprocess
+ x = self.preprocess(x)
+
+ # Init codebook if not inited
+ if self.training and not self.init:
+ self.init_codebook(x)
+
+ # quantize and dequantize through bottleneck
+ code_idx = self.quantize(x)
+ x_d = self.dequantize(code_idx)
+
+ # Update embeddings
+ if self.training:
+ perplexity = self.update_codebook(x, code_idx)
+ else :
+ perplexity = self.compute_perplexity(code_idx)
+
+ # Loss
+ commit_loss = F.mse_loss(x, x_d.detach())
+
+ # Passthrough
+ x_d = x + (x_d - x).detach()
+
+ # Postprocess
+ x_d = x_d.view(N, T, -1).permute(0, 2, 1).contiguous() #(N, DIM, T)
+
+ return x_d, commit_loss, perplexity
+
+
+
+class Quantizer(nn.Module):
+ def __init__(self, n_e, e_dim, beta):
+ super(Quantizer, self).__init__()
+
+ self.e_dim = e_dim
+ self.n_e = n_e
+ self.beta = beta
+
+ self.embedding = nn.Embedding(self.n_e, self.e_dim)
+ self.embedding.weight.data.uniform_(-1.0 / self.n_e, 1.0 / self.n_e)
+
+ def forward(self, z):
+
+ N, width, T = z.shape
+ z = self.preprocess(z)
+ assert z.shape[-1] == self.e_dim
+ z_flattened = z.contiguous().view(-1, self.e_dim)
+
+ # B x V
+ d = torch.sum(z_flattened ** 2, dim=1, keepdim=True) + \
+ torch.sum(self.embedding.weight**2, dim=1) - 2 * \
+ torch.matmul(z_flattened, self.embedding.weight.t())
+ # B x 1
+ min_encoding_indices = torch.argmin(d, dim=1)
+ z_q = self.embedding(min_encoding_indices).view(z.shape)
+
+ # compute loss for embedding
+ loss = torch.mean((z_q - z.detach())**2) + self.beta * \
+ torch.mean((z_q.detach() - z)**2)
+
+ # preserve gradients
+ z_q = z + (z_q - z).detach()
+ z_q = z_q.view(N, T, -1).permute(0, 2, 1).contiguous() #(N, DIM, T)
+
+ min_encodings = F.one_hot(min_encoding_indices, self.n_e).type(z.dtype)
+ e_mean = torch.mean(min_encodings, dim=0)
+ perplexity = torch.exp(-torch.sum(e_mean*torch.log(e_mean + 1e-10)))
+ return z_q, loss, perplexity
+
+ def quantize(self, z):
+
+ assert z.shape[-1] == self.e_dim
+
+ # B x V
+ d = torch.sum(z ** 2, dim=1, keepdim=True) + \
+ torch.sum(self.embedding.weight ** 2, dim=1) - 2 * \
+ torch.matmul(z, self.embedding.weight.t())
+ # B x 1
+ min_encoding_indices = torch.argmin(d, dim=1)
+ return min_encoding_indices
+
+ def dequantize(self, indices):
+
+ index_flattened = indices.view(-1)
+ z_q = self.embedding(index_flattened)
+ z_q = z_q.view(indices.shape + (self.e_dim, )).contiguous()
+ return z_q
+
+ def preprocess(self, x):
+ # NCT -> NTC -> [NT, C]
+ x = x.permute(0, 2, 1).contiguous()
+ x = x.view(-1, x.shape[-1])
+ return x
+
+
+
+class QuantizeReset(nn.Module):
+ def __init__(self, nb_code, code_dim, args):
+ super().__init__()
+ self.nb_code = nb_code
+ self.code_dim = code_dim
+ self.reset_codebook()
+ self.codebook = nn.Parameter(torch.randn(nb_code, code_dim))
+
+ def reset_codebook(self):
+ self.init = False
+ self.code_count = None
+
+ def _tile(self, x):
+ nb_code_x, code_dim = x.shape
+ if nb_code_x < self.nb_code:
+ n_repeats = (self.nb_code + nb_code_x - 1) // nb_code_x
+ std = 0.01 / np.sqrt(code_dim)
+ out = x.repeat(n_repeats, 1)
+ out = out + torch.randn_like(out) * std
+ else :
+ out = x
+ return out
+
+ def init_codebook(self, x):
+ out = self._tile(x)
+ self.codebook = nn.Parameter(out[:self.nb_code])
+ self.code_count = torch.ones(self.nb_code, device=self.codebook.device)
+ self.init = True
+
+ @torch.no_grad()
+ def compute_perplexity(self, code_idx) :
+ # Calculate new centres
+ code_onehot = torch.zeros(self.nb_code, code_idx.shape[0], device=code_idx.device) # nb_code, N * L
+ code_onehot.scatter_(0, code_idx.view(1, code_idx.shape[0]), 1)
+
+ code_count = code_onehot.sum(dim=-1) # nb_code
+ prob = code_count / torch.sum(code_count)
+ perplexity = torch.exp(-torch.sum(prob * torch.log(prob + 1e-7)))
+ return perplexity
+
+ def update_codebook(self, x, code_idx):
+
+ code_onehot = torch.zeros(self.nb_code, x.shape[0], device=x.device) # nb_code, N * L
+ code_onehot.scatter_(0, code_idx.view(1, x.shape[0]), 1)
+
+ code_count = code_onehot.sum(dim=-1) # nb_code
+
+ out = self._tile(x)
+ code_rand = out[:self.nb_code]
+
+ # Update centres
+ self.code_count = code_count # nb_code
+ usage = (self.code_count.view(self.nb_code, 1) >= 1.0).float()
+
+ self.codebook.data = usage * self.codebook.data + (1 - usage) * code_rand
+ prob = code_count / torch.sum(code_count)
+ perplexity = torch.exp(-torch.sum(prob * torch.log(prob + 1e-7)))
+
+
+ return perplexity
+
+ def preprocess(self, x):
+ # NCT -> NTC -> [NT, C]
+ x = x.permute(0, 2, 1).contiguous()
+ x = x.view(-1, x.shape[-1])
+ return x
+
+ def quantize(self, x):
+ # Calculate latent code x_l
+ k_w = self.codebook.t()
+ distance = torch.sum(x ** 2, dim=-1, keepdim=True) - 2 * torch.matmul(x, k_w) + torch.sum(k_w ** 2, dim=0,
+ keepdim=True) # (N * L, b)
+ _, code_idx = torch.min(distance, dim=-1)
+ return code_idx
+
+ def dequantize(self, code_idx):
+ x = F.embedding(code_idx, self.codebook)
+ return x
+
+
+ def forward(self, x):
+ N, width, T = x.shape
+ # Preprocess
+ x = self.preprocess(x)
+ # Init codebook if not inited
+ if self.training and not self.init:
+ self.init_codebook(x)
+ # quantize and dequantize through bottleneck
+ code_idx = self.quantize(x)
+ x_d = self.dequantize(code_idx)
+ # Update embeddings
+ if self.training:
+ perplexity = self.update_codebook(x, code_idx)
+ else :
+ perplexity = self.compute_perplexity(code_idx)
+
+ # Loss
+ commit_loss = F.mse_loss(x, x_d.detach())
+
+ # Passthrough
+ x_d = x + (x_d - x).detach()
+
+ # Postprocess
+ x_d = x_d.view(N, T, -1).permute(0, 2, 1).contiguous() #(N, DIM, T)
+
+ return x_d, commit_loss, perplexity
+
+
+class QuantizeEMA(nn.Module):
+ def __init__(self, nb_code, code_dim, args):
+ super().__init__()
+ self.nb_code = nb_code
+ self.code_dim = code_dim
+ self.mu = 0.99
+ self.reset_codebook()
+
+ def reset_codebook(self):
+ self.init = False
+ self.code_sum = None
+ self.code_count = None
+ self.register_buffer('codebook', torch.zeros(self.nb_code, self.code_dim).cuda())
+
+ def _tile(self, x):
+ nb_code_x, code_dim = x.shape
+ if nb_code_x < self.nb_code:
+ n_repeats = (self.nb_code + nb_code_x - 1) // nb_code_x
+ std = 0.01 / np.sqrt(code_dim)
+ out = x.repeat(n_repeats, 1)
+ out = out + torch.randn_like(out) * std
+ else :
+ out = x
+ return out
+
+ def init_codebook(self, x):
+ out = self._tile(x)
+ self.codebook = out[:self.nb_code]
+ self.code_sum = self.codebook.clone()
+ self.code_count = torch.ones(self.nb_code, device=self.codebook.device)
+ self.init = True
+
+ @torch.no_grad()
+ def compute_perplexity(self, code_idx) :
+ # Calculate new centres
+ code_onehot = torch.zeros(self.nb_code, code_idx.shape[0], device=code_idx.device) # nb_code, N * L
+ code_onehot.scatter_(0, code_idx.view(1, code_idx.shape[0]), 1)
+
+ code_count = code_onehot.sum(dim=-1) # nb_code
+ prob = code_count / torch.sum(code_count)
+ perplexity = torch.exp(-torch.sum(prob * torch.log(prob + 1e-7)))
+ return perplexity
+
+ @torch.no_grad()
+ def update_codebook(self, x, code_idx):
+
+ code_onehot = torch.zeros(self.nb_code, x.shape[0], device=x.device) # nb_code, N * L
+ code_onehot.scatter_(0, code_idx.view(1, x.shape[0]), 1)
+
+ code_sum = torch.matmul(code_onehot, x) # nb_code, w
+ code_count = code_onehot.sum(dim=-1) # nb_code
+
+ # Update centres
+ self.code_sum = self.mu * self.code_sum + (1. - self.mu) * code_sum # w, nb_code
+ self.code_count = self.mu * self.code_count + (1. - self.mu) * code_count # nb_code
+
+ code_update = self.code_sum.view(self.nb_code, self.code_dim) / self.code_count.view(self.nb_code, 1)
+
+ self.codebook = code_update
+ prob = code_count / torch.sum(code_count)
+ perplexity = torch.exp(-torch.sum(prob * torch.log(prob + 1e-7)))
+
+ return perplexity
+
+ def preprocess(self, x):
+ # NCT -> NTC -> [NT, C]
+ x = x.permute(0, 2, 1).contiguous()
+ x = x.view(-1, x.shape[-1])
+ return x
+
+ def quantize(self, x):
+ # Calculate latent code x_l
+ k_w = self.codebook.t()
+ distance = torch.sum(x ** 2, dim=-1, keepdim=True) - 2 * torch.matmul(x, k_w) + torch.sum(k_w ** 2, dim=0,
+ keepdim=True) # (N * L, b)
+ _, code_idx = torch.min(distance, dim=-1)
+ return code_idx
+
+ def dequantize(self, code_idx):
+ x = F.embedding(code_idx, self.codebook)
+ return x
+
+
+ def forward(self, x):
+ N, width, T = x.shape
+
+ # Preprocess
+ x = self.preprocess(x)
+
+ # Init codebook if not inited
+ if self.training and not self.init:
+ self.init_codebook(x)
+
+ # quantize and dequantize through bottleneck
+ code_idx = self.quantize(x)
+ x_d = self.dequantize(code_idx)
+
+ # Update embeddings
+ if self.training:
+ perplexity = self.update_codebook(x, code_idx)
+ else :
+ perplexity = self.compute_perplexity(code_idx)
+
+ # Loss
+ commit_loss = F.mse_loss(x, x_d.detach())
+
+ # Passthrough
+ x_d = x + (x_d - x).detach()
+
+ # Postprocess
+ x_d = x_d.view(N, T, -1).permute(0, 2, 1).contiguous() #(N, DIM, T)
+
+ return x_d, commit_loss, perplexity
diff --git a/MuseV/MMCM/mmcm/t2p/models/resnet.py b/MuseV/MMCM/mmcm/t2p/models/resnet.py
new file mode 100755
index 0000000000000000000000000000000000000000..062346e3ba2fc4d6ae5636f228c5b7565bdb62b7
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/models/resnet.py
@@ -0,0 +1,82 @@
+import torch.nn as nn
+import torch
+
+class nonlinearity(nn.Module):
+ def __init__(self):
+ super().__init__()
+
+ def forward(self, x):
+ # swish
+ return x * torch.sigmoid(x)
+
+class ResConv1DBlock(nn.Module):
+ def __init__(self, n_in, n_state, dilation=1, activation='silu', norm=None, dropout=None):
+ super().__init__()
+ padding = dilation
+ self.norm = norm
+ if norm == "LN":
+ self.norm1 = nn.LayerNorm(n_in)
+ self.norm2 = nn.LayerNorm(n_in)
+ elif norm == "GN":
+ self.norm1 = nn.GroupNorm(num_groups=32, num_channels=n_in, eps=1e-6, affine=True)
+ self.norm2 = nn.GroupNorm(num_groups=32, num_channels=n_in, eps=1e-6, affine=True)
+ elif norm == "BN":
+ self.norm1 = nn.BatchNorm1d(num_features=n_in, eps=1e-6, affine=True)
+ self.norm2 = nn.BatchNorm1d(num_features=n_in, eps=1e-6, affine=True)
+
+ else:
+ self.norm1 = nn.Identity()
+ self.norm2 = nn.Identity()
+
+ if activation == "relu":
+ self.activation1 = nn.ReLU()
+ self.activation2 = nn.ReLU()
+
+ elif activation == "silu":
+ self.activation1 = nonlinearity()
+ self.activation2 = nonlinearity()
+
+ elif activation == "gelu":
+ self.activation1 = nn.GELU()
+ self.activation2 = nn.GELU()
+
+
+
+ self.conv1 = nn.Conv1d(n_in, n_state, 3, 1, padding, dilation)
+ self.conv2 = nn.Conv1d(n_state, n_in, 1, 1, 0,)
+
+
+ def forward(self, x):
+ x_orig = x
+ if self.norm == "LN":
+ x = self.norm1(x.transpose(-2, -1))
+ x = self.activation1(x.transpose(-2, -1))
+ else:
+ x = self.norm1(x)
+ x = self.activation1(x)
+
+ x = self.conv1(x)
+
+ if self.norm == "LN":
+ x = self.norm2(x.transpose(-2, -1))
+ x = self.activation2(x.transpose(-2, -1))
+ else:
+ x = self.norm2(x)
+ x = self.activation2(x)
+
+ x = self.conv2(x)
+ x = x + x_orig
+ return x
+
+class Resnet1D(nn.Module):
+ def __init__(self, n_in, n_depth, dilation_growth_rate=1, reverse_dilation=True, activation='relu', norm=None):
+ super().__init__()
+
+ blocks = [ResConv1DBlock(n_in, n_in, dilation=dilation_growth_rate ** depth, activation=activation, norm=norm) for depth in range(n_depth)]
+ if reverse_dilation:
+ blocks = blocks[::-1]
+
+ self.model = nn.Sequential(*blocks)
+
+ def forward(self, x):
+ return self.model(x)
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/models/rotation2xyz.py b/MuseV/MMCM/mmcm/t2p/models/rotation2xyz.py
new file mode 100755
index 0000000000000000000000000000000000000000..9901f39909b3c29fb70a17c9471c1b02b81c7efc
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/models/rotation2xyz.py
@@ -0,0 +1,92 @@
+# This code is based on https://github.com/Mathux/ACTOR.git
+import torch
+from ..utils import rotation_conversions as geometry
+
+
+from ..models.smpl import SMPL, JOINTSTYPE_ROOT
+# from .get_model import JOINTSTYPES
+JOINTSTYPES = ["a2m", "a2mpl", "smpl", "vibe", "vertices"]
+
+
+class Rotation2xyz:
+ def __init__(self, device, dataset='amass'):
+ self.device = device
+ self.dataset = dataset
+ self.smpl_model = SMPL().eval().to(device)
+
+ def __call__(self, x, mask, pose_rep, translation, glob,
+ jointstype, vertstrans, betas=None, beta=0,
+ glob_rot=None, get_rotations_back=False, **kwargs):
+ if pose_rep == "xyz":
+ return x
+
+ if mask is None:
+ mask = torch.ones((x.shape[0], x.shape[-1]), dtype=bool, device=x.device)
+
+ if not glob and glob_rot is None:
+ raise TypeError("You must specify global rotation if glob is False")
+
+ if jointstype not in JOINTSTYPES:
+ raise NotImplementedError("This jointstype is not implemented.")
+
+ if translation:
+ x_translations = x[:, -1, :3]
+ x_rotations = x[:, :-1]
+ else:
+ x_rotations = x
+
+ x_rotations = x_rotations.permute(0, 3, 1, 2)
+ nsamples, time, njoints, feats = x_rotations.shape
+
+ # Compute rotations (convert only masked sequences output)
+ if pose_rep == "rotvec":
+ rotations = geometry.axis_angle_to_matrix(x_rotations[mask])
+ elif pose_rep == "rotmat":
+ rotations = x_rotations[mask].view(-1, njoints, 3, 3)
+ elif pose_rep == "rotquat":
+ rotations = geometry.quaternion_to_matrix(x_rotations[mask])
+ elif pose_rep == "rot6d":
+ rotations = geometry.rotation_6d_to_matrix(x_rotations[mask])
+ else:
+ raise NotImplementedError("No geometry for this one.")
+
+ if not glob:
+ global_orient = torch.tensor(glob_rot, device=x.device)
+ global_orient = geometry.axis_angle_to_matrix(global_orient).view(1, 1, 3, 3)
+ global_orient = global_orient.repeat(len(rotations), 1, 1, 1)
+ else:
+ global_orient = rotations[:, 0]
+ rotations = rotations[:, 1:]
+
+ if betas is None:
+ betas = torch.zeros([rotations.shape[0], self.smpl_model.num_betas],
+ dtype=rotations.dtype, device=rotations.device)
+ betas[:, 1] = beta
+ # import ipdb; ipdb.set_trace()
+ out = self.smpl_model(body_pose=rotations, global_orient=global_orient, betas=betas)
+
+ # get the desirable joints
+ joints = out[jointstype]
+
+ x_xyz = torch.empty(nsamples, time, joints.shape[1], 3, device=x.device, dtype=x.dtype)
+ x_xyz[~mask] = 0
+ x_xyz[mask] = joints
+
+ x_xyz = x_xyz.permute(0, 2, 3, 1).contiguous()
+
+ # the first translation root at the origin on the prediction
+ if jointstype != "vertices":
+ rootindex = JOINTSTYPE_ROOT[jointstype]
+ x_xyz = x_xyz - x_xyz[:, [rootindex], :, :]
+
+ if translation and vertstrans:
+ # the first translation root at the origin
+ x_translations = x_translations - x_translations[:, :, [0]]
+
+ # add the translation to all the joints
+ x_xyz = x_xyz + x_translations[:, None, :, :]
+
+ if get_rotations_back:
+ return x_xyz, rotations, global_orient
+ else:
+ return x_xyz
diff --git a/MuseV/MMCM/mmcm/t2p/models/smpl.py b/MuseV/MMCM/mmcm/t2p/models/smpl.py
new file mode 100755
index 0000000000000000000000000000000000000000..2ca7dbbafb8d1c4d507dbb3d18239cef54dc4c01
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/models/smpl.py
@@ -0,0 +1,97 @@
+# This code is based on https://github.com/Mathux/ACTOR.git
+import numpy as np
+import torch
+
+import contextlib
+
+from smplx import SMPLLayer as _SMPLLayer
+from smplx.lbs import vertices2joints
+
+
+# action2motion_joints = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 21, 24, 38]
+# change 0 and 8
+action2motion_joints = [8, 1, 2, 3, 4, 5, 6, 7, 0, 9, 10, 11, 12, 13, 14, 21, 24, 38]
+
+from ..utils.config import SMPL_MODEL_PATH, JOINT_REGRESSOR_TRAIN_EXTRA
+
+JOINTSTYPE_ROOT = {"a2m": 0, # action2motion
+ "smpl": 0,
+ "a2mpl": 0, # set(smpl, a2m)
+ "vibe": 8} # 0 is the 8 position: OP MidHip below
+
+JOINT_MAP = {
+ 'OP Nose': 24, 'OP Neck': 12, 'OP RShoulder': 17,
+ 'OP RElbow': 19, 'OP RWrist': 21, 'OP LShoulder': 16,
+ 'OP LElbow': 18, 'OP LWrist': 20, 'OP MidHip': 0,
+ 'OP RHip': 2, 'OP RKnee': 5, 'OP RAnkle': 8,
+ 'OP LHip': 1, 'OP LKnee': 4, 'OP LAnkle': 7,
+ 'OP REye': 25, 'OP LEye': 26, 'OP REar': 27,
+ 'OP LEar': 28, 'OP LBigToe': 29, 'OP LSmallToe': 30,
+ 'OP LHeel': 31, 'OP RBigToe': 32, 'OP RSmallToe': 33, 'OP RHeel': 34,
+ 'Right Ankle': 8, 'Right Knee': 5, 'Right Hip': 45,
+ 'Left Hip': 46, 'Left Knee': 4, 'Left Ankle': 7,
+ 'Right Wrist': 21, 'Right Elbow': 19, 'Right Shoulder': 17,
+ 'Left Shoulder': 16, 'Left Elbow': 18, 'Left Wrist': 20,
+ 'Neck (LSP)': 47, 'Top of Head (LSP)': 48,
+ 'Pelvis (MPII)': 49, 'Thorax (MPII)': 50,
+ 'Spine (H36M)': 51, 'Jaw (H36M)': 52,
+ 'Head (H36M)': 53, 'Nose': 24, 'Left Eye': 26,
+ 'Right Eye': 25, 'Left Ear': 28, 'Right Ear': 27
+}
+
+JOINT_NAMES = [
+ 'OP Nose', 'OP Neck', 'OP RShoulder',
+ 'OP RElbow', 'OP RWrist', 'OP LShoulder',
+ 'OP LElbow', 'OP LWrist', 'OP MidHip',
+ 'OP RHip', 'OP RKnee', 'OP RAnkle',
+ 'OP LHip', 'OP LKnee', 'OP LAnkle',
+ 'OP REye', 'OP LEye', 'OP REar',
+ 'OP LEar', 'OP LBigToe', 'OP LSmallToe',
+ 'OP LHeel', 'OP RBigToe', 'OP RSmallToe', 'OP RHeel',
+ 'Right Ankle', 'Right Knee', 'Right Hip',
+ 'Left Hip', 'Left Knee', 'Left Ankle',
+ 'Right Wrist', 'Right Elbow', 'Right Shoulder',
+ 'Left Shoulder', 'Left Elbow', 'Left Wrist',
+ 'Neck (LSP)', 'Top of Head (LSP)',
+ 'Pelvis (MPII)', 'Thorax (MPII)',
+ 'Spine (H36M)', 'Jaw (H36M)',
+ 'Head (H36M)', 'Nose', 'Left Eye',
+ 'Right Eye', 'Left Ear', 'Right Ear'
+]
+
+
+# adapted from VIBE/SPIN to output smpl_joints, vibe joints and action2motion joints
+class SMPL(_SMPLLayer):
+ """ Extension of the official SMPL implementation to support more joints """
+
+ def __init__(self, model_path=SMPL_MODEL_PATH, **kwargs):
+ kwargs["model_path"] = model_path
+
+ # remove the verbosity for the 10-shapes beta parameters
+ with contextlib.redirect_stdout(None):
+ super(SMPL, self).__init__(**kwargs)
+
+ J_regressor_extra = np.load(JOINT_REGRESSOR_TRAIN_EXTRA)
+ self.register_buffer('J_regressor_extra', torch.tensor(J_regressor_extra, dtype=torch.float32))
+ vibe_indexes = np.array([JOINT_MAP[i] for i in JOINT_NAMES])
+ a2m_indexes = vibe_indexes[action2motion_joints]
+ smpl_indexes = np.arange(24)
+ a2mpl_indexes = np.unique(np.r_[smpl_indexes, a2m_indexes])
+
+ self.maps = {"vibe": vibe_indexes,
+ "a2m": a2m_indexes,
+ "smpl": smpl_indexes,
+ "a2mpl": a2mpl_indexes}
+
+ def forward(self, *args, **kwargs):
+ smpl_output = super(SMPL, self).forward(*args, **kwargs)
+
+ extra_joints = vertices2joints(self.J_regressor_extra, smpl_output.vertices)
+ all_joints = torch.cat([smpl_output.joints, extra_joints], dim=1)
+
+ output = {"vertices": smpl_output.vertices}
+
+ for joinstype, indexes in self.maps.items():
+ output[joinstype] = all_joints[:, indexes]
+
+ return output
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/models/t2m_trans.py b/MuseV/MMCM/mmcm/t2p/models/t2m_trans.py
new file mode 100755
index 0000000000000000000000000000000000000000..85b6d618f44f294539c0bfe666a98d9b616ee6d0
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/models/t2m_trans.py
@@ -0,0 +1,211 @@
+import math
+import torch
+import torch.nn as nn
+from torch.nn import functional as F
+from torch.distributions import Categorical
+from . import pos_encoding as pos_encoding
+
+class Text2Motion_Transformer(nn.Module):
+
+ def __init__(self,
+ num_vq=1024,
+ embed_dim=512,
+ clip_dim=512,
+ block_size=16,
+ num_layers=2,
+ n_head=8,
+ drop_out_rate=0.1,
+ fc_rate=4):
+ super().__init__()
+ self.trans_base = CrossCondTransBase(num_vq, embed_dim, clip_dim, block_size, num_layers, n_head, drop_out_rate, fc_rate)
+ self.trans_head = CrossCondTransHead(num_vq, embed_dim, block_size, num_layers, n_head, drop_out_rate, fc_rate)
+ self.block_size = block_size
+ self.num_vq = num_vq
+
+ def get_block_size(self):
+ return self.block_size
+
+ def forward(self, idxs, clip_feature):
+ feat = self.trans_base(idxs, clip_feature)
+ logits = self.trans_head(feat)
+ return logits
+
+ def sample(self, clip_feature, if_categorial=False):
+ for k in range(self.block_size):
+ if k == 0:
+ x = []
+ else:
+ x = xs
+ logits = self.forward(x, clip_feature)
+ logits = logits[:, -1, :]
+ probs = F.softmax(logits, dim=-1)
+ if if_categorial:
+ dist = Categorical(probs)
+ idx = dist.sample()
+ if idx == self.num_vq:
+ break
+ idx = idx.unsqueeze(-1)
+ else:
+ _, idx = torch.topk(probs, k=1, dim=-1)
+ if idx[0] == self.num_vq:
+ break
+ # append to the sequence and continue
+ if k == 0:
+ xs = idx
+ else:
+ xs = torch.cat((xs, idx), dim=1)
+
+ if k == self.block_size - 1:
+ return xs[:, :-1]
+ return xs
+
+class CausalCrossConditionalSelfAttention(nn.Module):
+
+ def __init__(self, embed_dim=512, block_size=16, n_head=8, drop_out_rate=0.1):
+ super().__init__()
+ assert embed_dim % 8 == 0
+ # key, query, value projections for all heads
+ self.key = nn.Linear(embed_dim, embed_dim)
+ self.query = nn.Linear(embed_dim, embed_dim)
+ self.value = nn.Linear(embed_dim, embed_dim)
+
+ self.attn_drop = nn.Dropout(drop_out_rate)
+ self.resid_drop = nn.Dropout(drop_out_rate)
+
+ self.proj = nn.Linear(embed_dim, embed_dim)
+ # causal mask to ensure that attention is only applied to the left in the input sequence
+ self.register_buffer("mask", torch.tril(torch.ones(block_size, block_size)).view(1, 1, block_size, block_size))
+ self.n_head = n_head
+
+ def forward(self, x):
+ B, T, C = x.size()
+
+ # calculate query, key, values for all heads in batch and move head forward to be the batch dim
+ k = self.key(x).view(B, T, self.n_head, C // self.n_head).transpose(1, 2) # (B, nh, T, hs)
+ q = self.query(x).view(B, T, self.n_head, C // self.n_head).transpose(1, 2) # (B, nh, T, hs)
+ v = self.value(x).view(B, T, self.n_head, C // self.n_head).transpose(1, 2) # (B, nh, T, hs)
+ # causal self-attention; Self-attend: (B, nh, T, hs) x (B, nh, hs, T) -> (B, nh, T, T)
+ att = (q @ k.transpose(-2, -1)) * (1.0 / math.sqrt(k.size(-1)))
+ att = att.masked_fill(self.mask[:,:,:T,:T] == 0, float('-inf'))
+ att = F.softmax(att, dim=-1)
+ att = self.attn_drop(att)
+ y = att @ v # (B, nh, T, T) x (B, nh, T, hs) -> (B, nh, T, hs)
+ y = y.transpose(1, 2).contiguous().view(B, T, C) # re-assemble all head outputs side by side
+
+ # output projection
+ y = self.resid_drop(self.proj(y))
+ return y
+
+class Block(nn.Module):
+
+ def __init__(self, embed_dim=512, block_size=16, n_head=8, drop_out_rate=0.1, fc_rate=4):
+ super().__init__()
+ self.ln1 = nn.LayerNorm(embed_dim)
+ self.ln2 = nn.LayerNorm(embed_dim)
+ self.attn = CausalCrossConditionalSelfAttention(embed_dim, block_size, n_head, drop_out_rate)
+ self.mlp = nn.Sequential(
+ nn.Linear(embed_dim, fc_rate * embed_dim),
+ nn.GELU(),
+ nn.Linear(fc_rate * embed_dim, embed_dim),
+ nn.Dropout(drop_out_rate),
+ )
+
+ def forward(self, x):
+ x = x + self.attn(self.ln1(x))
+ x = x + self.mlp(self.ln2(x))
+ return x
+
+class CrossCondTransBase(nn.Module):
+
+ def __init__(self,
+ num_vq=1024,
+ embed_dim=512,
+ clip_dim=512,
+ block_size=16,
+ num_layers=2,
+ n_head=8,
+ drop_out_rate=0.1,
+ fc_rate=4):
+ super().__init__()
+ self.tok_emb = nn.Embedding(num_vq + 2, embed_dim)
+ self.cond_emb = nn.Linear(clip_dim, embed_dim)
+ self.pos_embedding = nn.Embedding(block_size, embed_dim)
+ self.drop = nn.Dropout(drop_out_rate)
+ # transformer block
+ self.blocks = nn.Sequential(*[Block(embed_dim, block_size, n_head, drop_out_rate, fc_rate) for _ in range(num_layers)])
+ self.pos_embed = pos_encoding.PositionEmbedding(block_size, embed_dim, 0.0, False)
+
+ self.block_size = block_size
+
+ self.apply(self._init_weights)
+
+ def get_block_size(self):
+ return self.block_size
+
+ def _init_weights(self, module):
+ if isinstance(module, (nn.Linear, nn.Embedding)):
+ module.weight.data.normal_(mean=0.0, std=0.02)
+ if isinstance(module, nn.Linear) and module.bias is not None:
+ module.bias.data.zero_()
+ elif isinstance(module, nn.LayerNorm):
+ module.bias.data.zero_()
+ module.weight.data.fill_(1.0)
+
+ def forward(self, idx, clip_feature):
+ if len(idx) == 0:
+ token_embeddings = self.cond_emb(clip_feature).unsqueeze(1)
+ else:
+ b, t = idx.size()
+ assert t <= self.block_size, "Cannot forward, model block size is exhausted."
+ # forward the Trans model
+ token_embeddings = self.tok_emb(idx)
+ token_embeddings = torch.cat([self.cond_emb(clip_feature).unsqueeze(1), token_embeddings], dim=1)
+
+ x = self.pos_embed(token_embeddings)
+ x = self.blocks(x)
+
+ return x
+
+
+class CrossCondTransHead(nn.Module):
+
+ def __init__(self,
+ num_vq=1024,
+ embed_dim=512,
+ block_size=16,
+ num_layers=2,
+ n_head=8,
+ drop_out_rate=0.1,
+ fc_rate=4):
+ super().__init__()
+
+ self.blocks = nn.Sequential(*[Block(embed_dim, block_size, n_head, drop_out_rate, fc_rate) for _ in range(num_layers)])
+ self.ln_f = nn.LayerNorm(embed_dim)
+ self.head = nn.Linear(embed_dim, num_vq + 1, bias=False)
+ self.block_size = block_size
+
+ self.apply(self._init_weights)
+
+ def get_block_size(self):
+ return self.block_size
+
+ def _init_weights(self, module):
+ if isinstance(module, (nn.Linear, nn.Embedding)):
+ module.weight.data.normal_(mean=0.0, std=0.02)
+ if isinstance(module, nn.Linear) and module.bias is not None:
+ module.bias.data.zero_()
+ elif isinstance(module, nn.LayerNorm):
+ module.bias.data.zero_()
+ module.weight.data.fill_(1.0)
+
+ def forward(self, x):
+ x = self.blocks(x)
+ x = self.ln_f(x)
+ logits = self.head(x)
+ return logits
+
+
+
+
+
+
diff --git a/MuseV/MMCM/mmcm/t2p/models/vqvae.py b/MuseV/MMCM/mmcm/t2p/models/vqvae.py
new file mode 100755
index 0000000000000000000000000000000000000000..6faf66cebcf34187084a3b9ac89fa2c302b16883
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/models/vqvae.py
@@ -0,0 +1,118 @@
+import torch.nn as nn
+from .encdec import Encoder, Decoder
+from .quantize_cnn import QuantizeEMAReset, Quantizer, QuantizeEMA, QuantizeReset
+
+
+class VQVAE_251(nn.Module):
+ def __init__(self,
+ args,
+ nb_code=1024,
+ code_dim=512,
+ output_emb_width=512,
+ down_t=3,
+ stride_t=2,
+ width=512,
+ depth=3,
+ dilation_growth_rate=3,
+ activation='relu',
+ norm=None):
+
+ super().__init__()
+ self.code_dim = code_dim
+ self.num_code = nb_code
+ self.quant = args.quantizer
+ self.encoder = Encoder(251 if args.dataname == 'kit' else 263, output_emb_width, down_t, stride_t, width, depth, dilation_growth_rate, activation=activation, norm=norm)
+ self.decoder = Decoder(251 if args.dataname == 'kit' else 263, output_emb_width, down_t, stride_t, width, depth, dilation_growth_rate, activation=activation, norm=norm)
+ if args.quantizer == "ema_reset":
+ self.quantizer = QuantizeEMAReset(nb_code, code_dim, args)
+ elif args.quantizer == "orig":
+ self.quantizer = Quantizer(nb_code, code_dim, 1.0)
+ elif args.quantizer == "ema":
+ self.quantizer = QuantizeEMA(nb_code, code_dim, args)
+ elif args.quantizer == "reset":
+ self.quantizer = QuantizeReset(nb_code, code_dim, args)
+
+
+ def preprocess(self, x):
+ # (bs, T, Jx3) -> (bs, Jx3, T)
+ x = x.permute(0,2,1).float()
+ return x
+
+
+ def postprocess(self, x):
+ # (bs, Jx3, T) -> (bs, T, Jx3)
+ x = x.permute(0,2,1)
+ return x
+
+
+ def encode(self, x):
+ N, T, _ = x.shape
+ x_in = self.preprocess(x)
+ x_encoder = self.encoder(x_in)
+ x_encoder = self.postprocess(x_encoder)
+ x_encoder = x_encoder.contiguous().view(-1, x_encoder.shape[-1]) # (NT, C)
+ code_idx = self.quantizer.quantize(x_encoder)
+ code_idx = code_idx.view(N, -1)
+ return code_idx
+
+
+ def forward(self, x):
+
+ x_in = self.preprocess(x)
+ # Encode
+ x_encoder = self.encoder(x_in)
+
+ ## quantization
+ x_quantized, loss, perplexity = self.quantizer(x_encoder)
+
+ ## decoder
+ x_decoder = self.decoder(x_quantized)
+ x_out = self.postprocess(x_decoder)
+ return x_out, loss, perplexity
+
+
+ def forward_decoder(self, x):
+ x_d = self.quantizer.dequantize(x)
+ x_d = x_d.view(1, -1, self.code_dim).permute(0, 2, 1).contiguous()
+
+ # decoder
+ x_decoder = self.decoder(x_d)
+ x_out = self.postprocess(x_decoder)
+ return x_out
+
+
+
+class HumanVQVAE(nn.Module):
+ def __init__(self,
+ args,
+ nb_code=512,
+ code_dim=512,
+ output_emb_width=512,
+ down_t=3,
+ stride_t=2,
+ width=512,
+ depth=3,
+ dilation_growth_rate=3,
+ activation='relu',
+ norm=None):
+
+ super().__init__()
+
+ self.nb_joints = 21 if args.dataname == 'kit' else 22
+ self.vqvae = VQVAE_251(args, nb_code, code_dim, output_emb_width, down_t, stride_t, width, depth, dilation_growth_rate, activation=activation, norm=norm)
+
+ def encode(self, x):
+ b, t, c = x.size()
+ quants = self.vqvae.encode(x) # (N, T)
+ return quants
+
+ def forward(self, x):
+
+ x_out, loss, perplexity = self.vqvae(x)
+
+ return x_out, loss, perplexity
+
+ def forward_decoder(self, x):
+ x_out = self.vqvae.forward_decoder(x)
+ return x_out
+
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/options/get_eval_option.py b/MuseV/MMCM/mmcm/t2p/options/get_eval_option.py
new file mode 100755
index 0000000000000000000000000000000000000000..d0989ba1a8116068753ada2cb1806744e4512447
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/options/get_eval_option.py
@@ -0,0 +1,83 @@
+from argparse import Namespace
+import re
+from os.path import join as pjoin
+
+
+def is_float(numStr):
+ flag = False
+ numStr = str(numStr).strip().lstrip('-').lstrip('+')
+ try:
+ reg = re.compile(r'^[-+]?[0-9]+\.[0-9]+$')
+ res = reg.match(str(numStr))
+ if res:
+ flag = True
+ except Exception as ex:
+ print("is_float() - error: " + str(ex))
+ return flag
+
+
+def is_number(numStr):
+ flag = False
+ numStr = str(numStr).strip().lstrip('-').lstrip('+')
+ if str(numStr).isdigit():
+ flag = True
+ return flag
+
+
+def get_opt(opt_path, device):
+ opt = Namespace()
+ opt_dict = vars(opt)
+
+ skip = ('-------------- End ----------------',
+ '------------ Options -------------',
+ '\n')
+ print('Reading', opt_path)
+ with open(opt_path) as f:
+ for line in f:
+ if line.strip() not in skip:
+ # print(line.strip())
+ key, value = line.strip().split(': ')
+ if value in ('True', 'False'):
+ opt_dict[key] = (value == 'True')
+ # print(key, value)
+ elif is_float(value):
+ opt_dict[key] = float(value)
+ elif is_number(value):
+ opt_dict[key] = int(value)
+ else:
+ opt_dict[key] = str(value)
+
+ # print(opt)
+ opt_dict['which_epoch'] = 'finest'
+ opt.save_root = pjoin(opt.checkpoints_dir, opt.dataset_name, opt.name)
+ opt.model_dir = pjoin(opt.save_root, 'model')
+ opt.meta_dir = pjoin(opt.save_root, 'meta')
+
+ if opt.dataset_name == 't2m':
+ opt.data_root = './dataset/HumanML3D/'
+ opt.motion_dir = pjoin(opt.data_root, 'new_joint_vecs')
+ opt.text_dir = pjoin(opt.data_root, 'texts')
+ opt.joints_num = 22
+ opt.dim_pose = 263
+ opt.max_motion_length = 196
+ opt.max_motion_frame = 196
+ opt.max_motion_token = 55
+ elif opt.dataset_name == 'kit':
+ opt.data_root = './dataset/KIT-ML/'
+ opt.motion_dir = pjoin(opt.data_root, 'new_joint_vecs')
+ opt.text_dir = pjoin(opt.data_root, 'texts')
+ opt.joints_num = 21
+ opt.dim_pose = 251
+ opt.max_motion_length = 196
+ opt.max_motion_frame = 196
+ opt.max_motion_token = 55
+ else:
+ raise KeyError('Dataset not recognized')
+
+ opt.dim_word = 300
+ opt.num_classes = 200 // opt.unit_length
+ opt.is_train = False
+ opt.is_continue = False
+ opt.device = device
+
+ return opt
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/options/option_transformer.py b/MuseV/MMCM/mmcm/t2p/options/option_transformer.py
new file mode 100755
index 0000000000000000000000000000000000000000..cf48ce1fdac663ec44419d67721ac268806f8127
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/options/option_transformer.py
@@ -0,0 +1,68 @@
+import argparse
+
+def get_args_parser():
+ parser = argparse.ArgumentParser(description='Optimal Transport AutoEncoder training for Amass',
+ add_help=True,
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+
+ ## dataloader
+
+ parser.add_argument('--dataname', type=str, default='kit', help='dataset directory')
+ parser.add_argument('--batch-size', default=128, type=int, help='batch size')
+ parser.add_argument('--fps', default=[20], nargs="+", type=int, help='frames per second')
+ parser.add_argument('--seq-len', type=int, default=64, help='training motion length')
+
+ ## optimization
+ parser.add_argument('--total-iter', default=100000, type=int, help='number of total iterations to run')
+ parser.add_argument('--warm-up-iter', default=1000, type=int, help='number of total iterations for warmup')
+ parser.add_argument('--lr', default=2e-4, type=float, help='max learning rate')
+ parser.add_argument('--lr-scheduler', default=[60000], nargs="+", type=int, help="learning rate schedule (iterations)")
+ parser.add_argument('--gamma', default=0.05, type=float, help="learning rate decay")
+
+ parser.add_argument('--weight-decay', default=1e-6, type=float, help='weight decay')
+ parser.add_argument('--decay-option',default='all', type=str, choices=['all', 'noVQ'], help='disable weight decay on codebook')
+ parser.add_argument('--optimizer',default='adamw', type=str, choices=['adam', 'adamw'], help='disable weight decay on codebook')
+
+ ## vqvae arch
+ parser.add_argument("--code-dim", type=int, default=512, help="embedding dimension")
+ parser.add_argument("--nb-code", type=int, default=512, help="nb of embedding")
+ parser.add_argument("--mu", type=float, default=0.99, help="exponential moving average to update the codebook")
+ parser.add_argument("--down-t", type=int, default=3, help="downsampling rate")
+ parser.add_argument("--stride-t", type=int, default=2, help="stride size")
+ parser.add_argument("--width", type=int, default=512, help="width of the network")
+ parser.add_argument("--depth", type=int, default=3, help="depth of the network")
+ parser.add_argument("--dilation-growth-rate", type=int, default=3, help="dilation growth rate")
+ parser.add_argument("--output-emb-width", type=int, default=512, help="output embedding width")
+ parser.add_argument('--vq-act', type=str, default='relu', choices = ['relu', 'silu', 'gelu'], help='dataset directory')
+
+ ## gpt arch
+ parser.add_argument("--block-size", type=int, default=25, help="seq len")
+ parser.add_argument("--embed-dim-gpt", type=int, default=512, help="embedding dimension")
+ parser.add_argument("--clip-dim", type=int, default=512, help="latent dimension in the clip feature")
+ parser.add_argument("--num-layers", type=int, default=2, help="nb of transformer layers")
+ parser.add_argument("--n-head-gpt", type=int, default=8, help="nb of heads")
+ parser.add_argument("--ff-rate", type=int, default=4, help="feedforward size")
+ parser.add_argument("--drop-out-rate", type=float, default=0.1, help="dropout ratio in the pos encoding")
+
+ ## quantizer
+ parser.add_argument("--quantizer", type=str, default='ema_reset', choices = ['ema', 'orig', 'ema_reset', 'reset'], help="eps for optimal transport")
+ parser.add_argument('--quantbeta', type=float, default=1.0, help='dataset directory')
+
+ ## resume
+ parser.add_argument("--resume-pth", type=str, default=None, help='resume vq pth')
+ parser.add_argument("--resume-trans", type=str, default=None, help='resume gpt pth')
+
+
+ ## output directory
+ parser.add_argument('--out-dir', type=str, default='output_GPT_Final/', help='output directory')
+ parser.add_argument('--exp-name', type=str, default='exp_debug', help='name of the experiment, will create a file inside out-dir')
+ parser.add_argument('--vq-name', type=str, default='exp_debug', help='name of the generated dataset .npy, will create a file inside out-dir')
+ ## other
+ parser.add_argument('--print-iter', default=200, type=int, help='print frequency')
+ parser.add_argument('--eval-iter', default=5000, type=int, help='evaluation frequency')
+ parser.add_argument('--seed', default=123, type=int, help='seed for initializing training. ')
+ parser.add_argument("--if-maxtest", action='store_true', help="test in max")
+ parser.add_argument('--pkeep', type=float, default=1.0, help='keep rate for gpt training')
+
+
+ return parser.parse_args()
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/options/option_vq.py b/MuseV/MMCM/mmcm/t2p/options/option_vq.py
new file mode 100755
index 0000000000000000000000000000000000000000..08a53ff1270facc10ab44ec0647e673ed1336d0d
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/options/option_vq.py
@@ -0,0 +1,61 @@
+import argparse
+
+def get_args_parser():
+ parser = argparse.ArgumentParser(description='Optimal Transport AutoEncoder training for AIST',
+ add_help=True,
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+
+ ## dataloader
+ parser.add_argument('--dataname', type=str, default='kit', help='dataset directory')
+ parser.add_argument('--batch-size', default=128, type=int, help='batch size')
+ parser.add_argument('--window-size', type=int, default=64, help='training motion length')
+
+ ## optimization
+ parser.add_argument('--total-iter', default=200000, type=int, help='number of total iterations to run')
+ parser.add_argument('--warm-up-iter', default=1000, type=int, help='number of total iterations for warmup')
+ parser.add_argument('--lr', default=2e-4, type=float, help='max learning rate')
+ parser.add_argument('--lr-scheduler', default=[50000, 400000], nargs="+", type=int, help="learning rate schedule (iterations)")
+ parser.add_argument('--gamma', default=0.05, type=float, help="learning rate decay")
+
+ parser.add_argument('--weight-decay', default=0.0, type=float, help='weight decay')
+ parser.add_argument("--commit", type=float, default=0.02, help="hyper-parameter for the commitment loss")
+ parser.add_argument('--loss-vel', type=float, default=0.1, help='hyper-parameter for the velocity loss')
+ parser.add_argument('--recons-loss', type=str, default='l2', help='reconstruction loss')
+
+ ## vqvae arch
+ parser.add_argument("--code-dim", type=int, default=512, help="embedding dimension")
+ parser.add_argument("--nb-code", type=int, default=512, help="nb of embedding")
+ parser.add_argument("--mu", type=float, default=0.99, help="exponential moving average to update the codebook")
+ parser.add_argument("--down-t", type=int, default=2, help="downsampling rate")
+ parser.add_argument("--stride-t", type=int, default=2, help="stride size")
+ parser.add_argument("--width", type=int, default=512, help="width of the network")
+ parser.add_argument("--depth", type=int, default=3, help="depth of the network")
+ parser.add_argument("--dilation-growth-rate", type=int, default=3, help="dilation growth rate")
+ parser.add_argument("--output-emb-width", type=int, default=512, help="output embedding width")
+ parser.add_argument('--vq-act', type=str, default='relu', choices = ['relu', 'silu', 'gelu'], help='dataset directory')
+ parser.add_argument('--vq-norm', type=str, default=None, help='dataset directory')
+
+ ## quantizer
+ parser.add_argument("--quantizer", type=str, default='ema_reset', choices = ['ema', 'orig', 'ema_reset', 'reset'], help="eps for optimal transport")
+ parser.add_argument('--beta', type=float, default=1.0, help='commitment loss in standard VQ')
+
+ ## resume
+ parser.add_argument("--resume-pth", type=str, default=None, help='resume pth for VQ')
+ parser.add_argument("--resume-gpt", type=str, default=None, help='resume pth for GPT')
+
+
+ ## output directory
+ parser.add_argument('--out-dir', type=str, default='output_vqfinal/', help='output directory')
+ parser.add_argument('--results-dir', type=str, default='visual_results/', help='output directory')
+ parser.add_argument('--visual-name', type=str, default='baseline', help='output directory')
+ parser.add_argument('--exp-name', type=str, default='exp_debug', help='name of the experiment, will create a file inside out-dir')
+ ## other
+ parser.add_argument('--print-iter', default=200, type=int, help='print frequency')
+ parser.add_argument('--eval-iter', default=1000, type=int, help='evaluation frequency')
+ parser.add_argument('--seed', default=123, type=int, help='seed for initializing training.')
+
+ parser.add_argument('--vis-gt', action='store_true', help='whether visualize GT motions')
+ parser.add_argument('--nb-vis', default=20, type=int, help='nb of visualizations')
+
+
+ return parser.parse_args()
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/render_final.py b/MuseV/MMCM/mmcm/t2p/render_final.py
new file mode 100755
index 0000000000000000000000000000000000000000..2665f86ae8c4b49c90fffbe679ee1a3fffc5f64f
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/render_final.py
@@ -0,0 +1,194 @@
+from models.rotation2xyz import Rotation2xyz
+import numpy as np
+from trimesh import Trimesh
+import os
+os.environ['PYOPENGL_PLATFORM'] = "osmesa"
+
+import torch
+from visualize.simplify_loc2rot import joints2smpl
+import pyrender
+import matplotlib.pyplot as plt
+
+import io
+import imageio
+from shapely import geometry
+import trimesh
+from pyrender.constants import RenderFlags
+import math
+# import ffmpeg
+from PIL import Image
+
+class WeakPerspectiveCamera(pyrender.Camera):
+ def __init__(self,
+ scale,
+ translation,
+ znear=pyrender.camera.DEFAULT_Z_NEAR,
+ zfar=None,
+ name=None):
+ super(WeakPerspectiveCamera, self).__init__(
+ znear=znear,
+ zfar=zfar,
+ name=name,
+ )
+ self.scale = scale
+ self.translation = translation
+
+ def get_projection_matrix(self, width=None, height=None):
+ P = np.eye(4)
+ P[0, 0] = self.scale[0]
+ P[1, 1] = self.scale[1]
+ P[0, 3] = self.translation[0] * self.scale[0]
+ P[1, 3] = -self.translation[1] * self.scale[1]
+ P[2, 2] = -1
+ return P
+
+def render(motions, outdir='test_vis', device_id=0, name=None, pred=True):
+ frames, njoints, nfeats = motions.shape
+ MINS = motions.min(axis=0).min(axis=0)
+ MAXS = motions.max(axis=0).max(axis=0)
+
+ height_offset = MINS[1]
+ motions[:, :, 1] -= height_offset
+ trajec = motions[:, 0, [0, 2]]
+
+ j2s = joints2smpl(num_frames=frames, device_id=0, cuda=True)
+ rot2xyz = Rotation2xyz(device=torch.device("cuda:0"))
+ faces = rot2xyz.smpl_model.faces
+
+ if (not os.path.exists(outdir + name+'_pred.pt') and pred) or (not os.path.exists(outdir + name+'_gt.pt') and not pred):
+ print(f'Running SMPLify, it may take a few minutes.')
+ motion_tensor, opt_dict = j2s.joint2smpl(motions) # [nframes, njoints, 3]
+
+ vertices = rot2xyz(torch.tensor(motion_tensor).clone(), mask=None,
+ pose_rep='rot6d', translation=True, glob=True,
+ jointstype='vertices',
+ vertstrans=True)
+
+ if pred:
+ torch.save(vertices, outdir + name+'_pred.pt')
+ else:
+ torch.save(vertices, outdir + name+'_gt.pt')
+ else:
+ if pred:
+ vertices = torch.load(outdir + name+'_pred.pt')
+ else:
+ vertices = torch.load(outdir + name+'_gt.pt')
+ frames = vertices.shape[3] # shape: 1, nb_frames, 3, nb_joints
+ print (vertices.shape)
+ MINS = torch.min(torch.min(vertices[0], axis=0)[0], axis=1)[0]
+ MAXS = torch.max(torch.max(vertices[0], axis=0)[0], axis=1)[0]
+ # vertices[:,:,1,:] -= MINS[1] + 1e-5
+
+
+ out_list = []
+
+ minx = MINS[0] - 0.5
+ maxx = MAXS[0] + 0.5
+ minz = MINS[2] - 0.5
+ maxz = MAXS[2] + 0.5
+ polygon = geometry.Polygon([[minx, minz], [minx, maxz], [maxx, maxz], [maxx, minz]])
+ polygon_mesh = trimesh.creation.extrude_polygon(polygon, 1e-5)
+
+ vid = []
+ for i in range(frames):
+ if i % 10 == 0:
+ print(i)
+
+ mesh = Trimesh(vertices=vertices[0, :, :, i].squeeze().tolist(), faces=faces)
+
+ base_color = (0.11, 0.53, 0.8, 0.5)
+ ## OPAQUE rendering without alpha
+ ## BLEND rendering consider alpha
+ material = pyrender.MetallicRoughnessMaterial(
+ metallicFactor=0.7,
+ alphaMode='OPAQUE',
+ baseColorFactor=base_color
+ )
+
+
+ mesh = pyrender.Mesh.from_trimesh(mesh, material=material)
+
+ polygon_mesh.visual.face_colors = [0, 0, 0, 0.21]
+ polygon_render = pyrender.Mesh.from_trimesh(polygon_mesh, smooth=False)
+
+ bg_color = [1, 1, 1, 0.8]
+ scene = pyrender.Scene(bg_color=bg_color, ambient_light=(0.4, 0.4, 0.4))
+
+ sx, sy, tx, ty = [0.75, 0.75, 0, 0.10]
+
+ camera = pyrender.PerspectiveCamera(yfov=(np.pi / 3.0))
+
+ light = pyrender.DirectionalLight(color=[1,1,1], intensity=300)
+
+ scene.add(mesh)
+
+ c = np.pi / 2
+
+ scene.add(polygon_render, pose=np.array([[ 1, 0, 0, 0],
+
+ [ 0, np.cos(c), -np.sin(c), MINS[1].cpu().numpy()],
+
+ [ 0, np.sin(c), np.cos(c), 0],
+
+ [ 0, 0, 0, 1]]))
+
+ light_pose = np.eye(4)
+ light_pose[:3, 3] = [0, -1, 1]
+ scene.add(light, pose=light_pose.copy())
+
+ light_pose[:3, 3] = [0, 1, 1]
+ scene.add(light, pose=light_pose.copy())
+
+ light_pose[:3, 3] = [1, 1, 2]
+ scene.add(light, pose=light_pose.copy())
+
+
+ c = -np.pi / 6
+
+ scene.add(camera, pose=[[ 1, 0, 0, (minx+maxx).cpu().numpy()/2],
+
+ [ 0, np.cos(c), -np.sin(c), 1.5],
+
+ [ 0, np.sin(c), np.cos(c), max(4, minz.cpu().numpy()+(1.5-MINS[1].cpu().numpy())*2, (maxx-minx).cpu().numpy())],
+
+ [ 0, 0, 0, 1]
+ ])
+
+ # render scene
+ r = pyrender.OffscreenRenderer(960, 960)
+
+ color, _ = r.render(scene, flags=RenderFlags.RGBA)
+ # Image.fromarray(color).save(outdir+name+'_'+str(i)+'.png')
+
+ vid.append(color)
+
+ r.delete()
+
+ out = np.stack(vid, axis=0)
+ if pred:
+ imageio.mimsave(outdir + name+'_pred.gif', out, fps=20)
+ else:
+ imageio.mimsave(outdir + name+'_gt.gif', out, fps=20)
+
+
+
+
+
+if __name__ == "__main__":
+ import argparse
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--filedir", type=str, default=None, help='motion npy file dir')
+ parser.add_argument('--motion-list', default=None, nargs="+", type=str, help="motion name list")
+ args = parser.parse_args()
+
+ filename_list = args.motion_list
+ filedir = args.filedir
+
+ for filename in filename_list:
+ motions = np.load(filedir + filename+'_pred.npy')
+ print('pred', motions.shape, filename)
+ render(motions[0], outdir=filedir, device_id=0, name=filename, pred=True)
+
+ motions = np.load(filedir + filename+'_gt.npy')
+ print('gt', motions.shape, filename)
+ render(motions[0], outdir=filedir, device_id=0, name=filename, pred=False)
diff --git a/MuseV/MMCM/mmcm/t2p/smpl.gif b/MuseV/MMCM/mmcm/t2p/smpl.gif
new file mode 100755
index 0000000000000000000000000000000000000000..2a61d88f1018429cdead2a9bd7902222d0afb57a
Binary files /dev/null and b/MuseV/MMCM/mmcm/t2p/smpl.gif differ
diff --git a/MuseV/MMCM/mmcm/t2p/text2pose.py b/MuseV/MMCM/mmcm/t2p/text2pose.py
new file mode 100755
index 0000000000000000000000000000000000000000..7f671fae8a432aff53808e66cbf185a8e52e7d6f
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/text2pose.py
@@ -0,0 +1,359 @@
+#from __future__ import absolute_import
+import sys
+import io
+import os
+sys.argv = ['GPT_eval_multi.py']
+
+# 将项目根目录添加到sys.path中
+PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
+sys.path.insert(1, PROJECT_ROOT)
+CKPT_ROOT="/cfs-datasets/public_models/motion"
+
+from .options import option_transformer as option_trans
+
+import sys
+print(sys.path[0])
+
+import clip
+import torch
+import cv2
+import numpy as np
+from .models import vqvae as vqvae
+from .models import t2m_trans as trans
+import warnings
+from .visualization import plot_3d_global as plot_3d
+import matplotlib.pyplot as plt
+import numpy as np
+import matplotlib.colors as mcolors
+from tqdm import tqdm
+from mpl_toolkits.mplot3d import Axes3D
+from PIL import Image
+
+import time
+import random
+
+
+warnings.filterwarnings('ignore')
+from matplotlib.axes._axes import _log as matplotlib_axes_logger
+matplotlib_axes_logger.setLevel('ERROR')
+
+from math import cos,sin,radians
+
+args = option_trans.get_args_parser()
+
+args.dataname = 't2m'
+args.resume_pth = os.path.join(CKPT_ROOT,'pretrained/VQVAE/net_last.pth')
+args.resume_trans = os.path.join(CKPT_ROOT,'pretrained/VQTransformer_corruption05/net_best_fid.pth')
+args.down_t = 2
+args.depth = 3
+args.block_size = 51
+
+def replace_space_with_underscore(s):
+ return s.replace(' ', '_')
+
+
+def Rz(angle):
+ theta=radians(angle)
+ return np.array([[cos(theta), -sin(theta), 0],
+ [sin(theta), cos(theta), 0],
+ [0, 0, 1]])
+
+
+def Rx(angle):
+ theta=radians(angle)
+ return np.array(
+ [[1, 0, 0],
+ [0 , cos(theta), -sin(theta)],
+ [0, sin(theta), cos(theta)]])
+
+def generate_cuid():
+ timestamp = hex(int(time.time() * 1000))[2:]
+ random_str = hex(random.randint(0, 0xfffff))[2:]
+ return (timestamp + random_str).zfill(10)
+
+def smpl_to_openpose18(smpl_keypoints):
+ '''
+ 22关键点SMPL对应关系解释
+ [0, 2, 5, 8, 11]
+ 这个列表表示SMPL模型中左腿的连接方式,从骨盆(0号关键点)开始,连接左大腿(2号关键点)、左小腿(5号关键点)、左脚(8号关键点)和左脚尖(11号关键点)。
+
+ [0, 1, 4, 7, 10]
+ 这个列表表示SMPL模型中右腿的连接方式,从骨盆(0号关键点)开始,连接右大腿(1号关键点)、右小腿(4号关键点)、右脚(7号关键点)和右脚尖(10号关键点)。
+
+ [0, 3, 6, 9, 12, 15]
+ 这个列表表示SMPL模型中躯干的连接方式,从骨盆(0号关键点)开始,连接脊柱(3号关键点)、颈部(6号关键点)、头部(9号关键点)、左肩膀(12号关键点)、右肩膀(15号关键点)。
+
+ [9, 14, 17, 19, 21]
+ 这个列表表示SMPL模型中左臂的连接方式,从左肩膀(9号关键点)开始,连接左上臂(14号关键点)、左前臂(17号关键点)、左手腕(19号关键点)和左手(21号关键点)。
+
+ [9, 13, 16, 18, 20]
+ 这个列表表示SMPL模型中右臂的连接方式,从右肩膀(9号关键点)开始,连接右上臂(13号关键点)、右前臂(16号关键点)、右手腕(18号关键点)和右手(20号关键点)。
+
+ 目前转Openpose忽略掉了SMPL的肩膀关键点
+ '''
+ openpose_keypoints = np.zeros((18, 3))
+ openpose_keypoints[0] = smpl_keypoints[9] # nose
+ openpose_keypoints[0][1] = openpose_keypoints[0][1]+0.3 #
+
+
+ openpose_keypoints[1] = smpl_keypoints[6] # neck
+ openpose_keypoints[2] = smpl_keypoints[16] # right shoulder
+ openpose_keypoints[3] = smpl_keypoints[18] # right elbow
+ openpose_keypoints[4] = smpl_keypoints[20] # right wrist
+ openpose_keypoints[5] = smpl_keypoints[17] # left shoulder
+ openpose_keypoints[6] = smpl_keypoints[19] # left elbow
+ openpose_keypoints[7] = smpl_keypoints[21] # left wrist
+
+ #TODO: Experiment,将neck的关键点抬高&&将nose的关键点相对高度关系与neck保持一致
+ openpose_keypoints[1][0]=(openpose_keypoints[2][0]+openpose_keypoints[5][0])/2
+ openpose_keypoints[1][1]=(openpose_keypoints[2][1]+openpose_keypoints[5][1])/2
+ openpose_keypoints[1][2]=(openpose_keypoints[2][2]+openpose_keypoints[5][2])/2
+ openpose_keypoints[0][1] = openpose_keypoints[1][1]+0.3 #
+
+
+ openpose_keypoints[8] = smpl_keypoints[1] # right hip
+ openpose_keypoints[9] = smpl_keypoints[4] # right knee
+ openpose_keypoints[10] = smpl_keypoints[7] # right ankle
+ openpose_keypoints[11] = smpl_keypoints[2] # left hip
+ openpose_keypoints[12] = smpl_keypoints[5] # left knee
+ openpose_keypoints[13] = smpl_keypoints[8] # left ankle
+
+ #TODO: Experiment,手工指定脸部关键点测试是否能够指定身体朝向
+ #openpose_keypoints[0][0] = openpose_keypoints[0][0]+0.3#测试0坐标轴方向(水平向右)
+ #openpose_keypoints[0][2] = openpose_keypoints[0][2]#测试2坐标轴方向(向外
+ #openpose_keypoints[0][1] = openpose_keypoints[0][1]+0.5#测试1坐标轴方向(垂直向上
+ openpose_keypoints[14] = openpose_keypoints[0] # right eye
+ openpose_keypoints[14][1]=openpose_keypoints[14][1]+0.05
+ openpose_keypoints[14][0]=openpose_keypoints[14][0]+0.3*(openpose_keypoints[2][0]-openpose_keypoints[1][0])
+ openpose_keypoints[14][2]=openpose_keypoints[14][2]+0.3*(openpose_keypoints[2][2]-openpose_keypoints[1][2])
+
+ openpose_keypoints[15] = openpose_keypoints[0] # left eye
+ openpose_keypoints[15][1]=openpose_keypoints[15][1]+0.05
+ openpose_keypoints[15][0]=openpose_keypoints[15][0]+0.3*(openpose_keypoints[5][0]-openpose_keypoints[1][0])
+ openpose_keypoints[15][2]=openpose_keypoints[15][2]+0.3*(openpose_keypoints[5][2]-openpose_keypoints[1][2])
+
+ openpose_keypoints[16] = openpose_keypoints[0] # right ear
+ openpose_keypoints[16][0]=openpose_keypoints[16][0]+0.7*(openpose_keypoints[2][0]-openpose_keypoints[1][0])
+ openpose_keypoints[16][2]=openpose_keypoints[16][2]+0.7*(openpose_keypoints[2][2]-openpose_keypoints[1][2])
+
+ openpose_keypoints[17] = openpose_keypoints[0] # left ear
+ openpose_keypoints[17][0]=openpose_keypoints[17][0]+0.7*(openpose_keypoints[5][0]-openpose_keypoints[1][0])
+ openpose_keypoints[17][2]=openpose_keypoints[17][2]+0.7*(openpose_keypoints[5][2]-openpose_keypoints[1][2])
+
+ return openpose_keypoints
+
+
+
+
+
+
+# TODO: debug only, need to be deleted before unload
+## load clip model and datasets
+clip_model, clip_preprocess = clip.load("ViT-B/32", device=torch.device('cuda'), jit=False, download_root=CKPT_ROOT) # Must set jit=False for training
+clip.model.convert_weights(clip_model) # Actually this line is unnecessary since clip by default already on float16
+clip_model.eval()
+for p in clip_model.parameters():
+ p.requires_grad = False
+print("loaded CLIP model")
+net = vqvae.HumanVQVAE(args, ## use args to define different parameters in different quantizers
+ args.nb_code,
+ args.code_dim,
+ args.output_emb_width,
+ args.down_t,
+ args.stride_t,
+ args.width,
+ args.depth,
+ args.dilation_growth_rate)
+
+
+trans_encoder = trans.Text2Motion_Transformer(num_vq=args.nb_code,
+ embed_dim=1024,
+ clip_dim=args.clip_dim,
+ block_size=args.block_size,
+ num_layers=9,
+ n_head=16,
+ drop_out_rate=args.drop_out_rate,
+ fc_rate=args.ff_rate)
+
+
+print ('loading checkpoint from {}'.format(args.resume_pth))
+ckpt = torch.load(args.resume_pth, map_location='cpu')
+net.load_state_dict(ckpt['net'], strict=True)
+net.eval()
+net.cuda()
+
+print ('loading transformer checkpoint from {}'.format(args.resume_trans))
+ckpt = torch.load(args.resume_trans, map_location='cpu')
+trans_encoder.load_state_dict(ckpt['trans'], strict=True)
+trans_encoder.eval()
+trans_encoder.cuda()
+
+mean = torch.from_numpy(np.load(os.path.join(CKPT_ROOT,'./checkpoints/t2m/VQVAEV3_CB1024_CMT_H1024_NRES3/meta/mean.npy'))).cuda()
+std = torch.from_numpy(np.load(os.path.join(CKPT_ROOT,'./checkpoints/t2m/VQVAEV3_CB1024_CMT_H1024_NRES3/meta/std.npy'))).cuda()
+
+
+
+def get_open_pose(text,height,width,save_path,video_length):
+ CKPT_ROOT = os.path.dirname(os.path.abspath(__file__))
+
+ clip_text=[text]
+ print(f"Motion Prompt: {text}")
+ # cuid=generate_cuid()
+ # print(f"Motion Generation cuid: {cuid}")
+
+ # clip_text = ["the person jump and spin twice,then running straght and sit down. "] #支持单个token的生成
+
+ # change the text here
+
+
+
+ text = clip.tokenize(clip_text, truncate=False).cuda()
+ feat_clip_text = clip_model.encode_text(text).float()
+ index_motion = trans_encoder.sample(feat_clip_text[0:1], False)
+ pred_pose = net.forward_decoder(index_motion)
+
+ from utils.motion_process import recover_from_ric
+ pred_xyz = recover_from_ric((pred_pose*std+mean).float(), 22)
+ xyz = pred_xyz.reshape(1, -1, 22, 3)
+
+ np.save('motion.npy', xyz.detach().cpu().numpy())
+
+
+ pose_vis = plot_3d.draw_to_batch(xyz.detach().cpu().numpy(),clip_text, ['smpl.gif'])
+
+ res=xyz.detach().cpu().numpy()
+ points_3d_list=res[0]
+ frame_num=points_3d_list.shape[0]
+
+ open_pose_list=np.array(points_3d_list)
+ print("The total SMPL sequence shape is : "+str(open_pose_list.shape))
+
+ max_val = np.max(open_pose_list, axis=(0, 1))
+ min_val = np.min(open_pose_list, axis=(0, 1))
+
+ print("三维坐标在坐标系上的最大值:", max_val)
+ print("三维坐标在坐标系上的最小值:", min_val)
+
+
+ check= smpl_to_openpose18(open_pose_list[0]) # 18个关键点
+ print("********SMPL_2_OpenPose_List(14/18)********")
+ print(check)
+ print("*************************")
+ print(f"Total Frame Number: {frame_num}")
+ img_list=[]
+ for step in tqdm(range(0,frame_num)):
+ # 生成图像
+ dpi=84
+ fig =plt.figure(figsize=(width/dpi, height/dpi), dpi=dpi)
+ ax = fig.add_subplot(111, projection='3d')
+ limits=2
+
+ ax.set_xlim(-limits*0.7, limits*0.7)
+ ax.set_ylim(0, limits*1.5)#上下
+ ax.set_zlim(0, limits*1.5)# 前后
+ ax.grid(b=False)
+ #ax.dist = 1
+ ax.set_box_aspect([1.4, 1.5, 1.5],zoom=3.5)# 坐标轴比例 TODO:这个比例可能有问题,会出现超出坐标范围的bug
+
+ # 关键点坐标,每行包含(x, y, z)
+ keypoints = smpl_to_openpose18(open_pose_list[step]) # 18个关键点
+
+ # 运动学链 目前只用到body部分
+ kinematic_chain = [(0, 1), (1, 2), (2, 3), (3, 4), (1, 5), (5, 6), (6, 7), (1, 8), (8, 9), (9, 10), (1, 11), (11, 12), (12, 13), (0, 14), (14, 16), (0, 15), (15, 17)]
+ #kinematic_chain = [(0, 1), (1, 2), (2, 3), (3, 4), (1, 5), (5, 6), (6, 7), (1, 8), (8, 9), (9, 10), (1, 11), (11, 12), (12, 13)]
+
+ # 颜色RGB
+
+ colors = [(0, 0, 255), (0, 255, 255), (0, 255, 0), (255, 0, 0), (255, 0, 255), (255, 192, 203), (0, 165, 255), (19, 69, 139), (173, 216, 230), (34, 139, 34), (0, 0, 128), (184, 134, 11), (139, 0, 139), (0, 100, 0), (0, 255, 255), (0, 255, 0), (216, 191, 216), (255, 255, 224)]
+ #colors=[(0, 0, 255), (0, 255, 255), (0, 255, 0), (255, 0, 0), (255, 0, 255), (255, 192, 203), (0, 165, 255), (19, 69, 139), (173, 216, 230), (34, 139, 34), (0, 0, 128), (184, 134, 11), (139, 0, 139), (0, 100, 0)]
+
+ #18点
+ joint_colors=[(255,0,0),(255,85,0),(255,170,0),(255,255,0),(170,255,0),(85,255,0),(0,255,0),(0,255,85),(0,255,170),(0,255,255),(0,170,255),(0,85,255),(0,0,255),(85,0,255),(170,0,255),(255,0,255),(255,0,170),(255,0,85),(255,0,0)]
+ #14点主干
+ #joint_colors=[(255,0,0),(255,85,0),(255,170,0),(255,255,0),(170,255,0),(85,255,0),(0,255,0),(0,255,85),(0,255,170),(0,255,255),(0,170,255),(0,85,255),(0,0,255),(85,0,255),(170,0,255)]
+ #运动链连线是joint颜色的60%
+
+
+ #plt颜色在0-1之间
+ rgb_color2=[]
+ joint_rgb_color2=[]
+ kinematic_chain_rgb_color2=[]
+ for color in joint_colors:
+ joint_rgb_color2.append(tuple([x/255 for x in color]))
+ kinematic_chain_rgb_color2.append(tuple([x*0.6/255 for x in color])) #运动链连线是joint颜色的60%
+
+ # 可视化结果
+ for i in range(0,18):
+ # 绘制关键点
+ ax.scatter(keypoints[i][0], keypoints[i][1], keypoints[i][2], s=50, c=joint_rgb_color2[i], marker='o')
+
+ # 绘制运动学链
+ for j in range(len(kinematic_chain)):
+ if kinematic_chain[j][1] == i:
+ ax.plot([keypoints[kinematic_chain[j][0]][0], keypoints[kinematic_chain[j][1]][0]], [keypoints[kinematic_chain[j][0]][1], keypoints[kinematic_chain[j][1]][1]], [keypoints[kinematic_chain[j][0]][2], keypoints[kinematic_chain[j][1]][2]], c=kinematic_chain_rgb_color2[i], linewidth=5)
+
+ # 调整视角
+ ax.view_init(elev=110, azim=-90)
+ plt.axis('off')
+
+
+ # 保存图片
+ # 将图像数据输出为图像数组
+ if not os.path.exists(save_path):
+ os.makedirs(save_path)
+ image_tmp_path=str(f"{save_path}/{str(step)}.jpg")
+ plt.savefig(os.path.join(CKPT_ROOT,image_tmp_path))#RGB
+ img=cv2.imread(os.path.join(CKPT_ROOT,image_tmp_path))
+ img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
+ img_list.append(img)
+ res=[]
+ if len(img_list)>=video_length:
+ key_frame_sample_step=int(len(img_list)/video_length)
+ else:
+ print("ERROR: video length is too long")
+ key_frame_sample_step=1
+
+ for i in range(0,len(img_list),key_frame_sample_step):
+ res.append(img_list[i])
+
+ return res
+
+
+
+def offline_get_open_pose(text,motion_text,height,width,save_path):
+ #motion_text=text
+
+ clip_text=[text]
+ print(f"Motion Prompt: {text}")
+ cuid=generate_cuid()
+ print(f"Motion Generation cuid: {cuid}")
+
+ # clip_text = ["the person jump and spin twice,then running straght and sit down. "] #支持单个token的生成
+
+ # change the text here
+
+
+
+ text = clip.tokenize(clip_text, truncate=False).cuda()
+ feat_clip_text = clip_model.encode_text(text).float()
+ index_motion = trans_encoder.sample(feat_clip_text[0:1], False)
+ pred_pose = net.forward_decoder(index_motion)
+
+ from utils.motion_process import recover_from_ric
+ pred_xyz = recover_from_ric((pred_pose*std+mean).float(), 22)
+ xyz = pred_xyz.reshape(1, -1, 22, 3)
+ res=xyz.detach().cpu().numpy()
+ np.save(f'{save_path}/{replace_space_with_underscore(motion_text)}.npy', res)
+
+
+ pose_vis = plot_3d.draw_to_batch(res,clip_text, ['smpl.gif'])
+
+
+
+
+if __name__ == "__main__":
+
+ text="walk around, jump, run straght."
+ pose = get_open_pose(text,512,512)
+ #pdb.set_trace()
+
diff --git a/MuseV/MMCM/mmcm/t2p/train_t2m_trans.py b/MuseV/MMCM/mmcm/t2p/train_t2m_trans.py
new file mode 100755
index 0000000000000000000000000000000000000000..09df8625c536297e0a335a5c592916d36eb3f8f2
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/train_t2m_trans.py
@@ -0,0 +1,191 @@
+import os
+import torch
+import numpy as np
+
+from torch.utils.tensorboard import SummaryWriter
+from os.path import join as pjoin
+from torch.distributions import Categorical
+import json
+import clip
+
+import options.option_transformer as option_trans
+import models.vqvae as vqvae
+import utils.utils_model as utils_model
+import utils.eval_trans as eval_trans
+from dataset import dataset_TM_train
+from dataset import dataset_TM_eval
+from dataset import dataset_tokenize
+import models.t2m_trans as trans
+from options.get_eval_option import get_opt
+from models.evaluator_wrapper import EvaluatorModelWrapper
+import warnings
+warnings.filterwarnings('ignore')
+
+##### ---- Exp dirs ---- #####
+args = option_trans.get_args_parser()
+torch.manual_seed(args.seed)
+
+args.out_dir = os.path.join(args.out_dir, f'{args.exp_name}')
+args.vq_dir= os.path.join("./dataset/KIT-ML" if args.dataname == 'kit' else "./dataset/HumanML3D", f'{args.vq_name}')
+os.makedirs(args.out_dir, exist_ok = True)
+os.makedirs(args.vq_dir, exist_ok = True)
+
+##### ---- Logger ---- #####
+logger = utils_model.get_logger(args.out_dir)
+writer = SummaryWriter(args.out_dir)
+logger.info(json.dumps(vars(args), indent=4, sort_keys=True))
+
+##### ---- Dataloader ---- #####
+train_loader_token = dataset_tokenize.DATALoader(args.dataname, 1, unit_length=2**args.down_t)
+
+from utils.word_vectorizer import WordVectorizer
+w_vectorizer = WordVectorizer('./glove', 'our_vab')
+val_loader = dataset_TM_eval.DATALoader(args.dataname, False, 32, w_vectorizer)
+
+dataset_opt_path = 'checkpoints/kit/Comp_v6_KLD005/opt.txt' if args.dataname == 'kit' else 'checkpoints/t2m/Comp_v6_KLD005/opt.txt'
+
+wrapper_opt = get_opt(dataset_opt_path, torch.device('cuda'))
+eval_wrapper = EvaluatorModelWrapper(wrapper_opt)
+
+##### ---- Network ---- #####
+clip_model, clip_preprocess = clip.load("ViT-B/32", device=torch.device('cuda'), jit=False) # Must set jit=False for training
+clip.model.convert_weights(clip_model) # Actually this line is unnecessary since clip by default already on float16
+clip_model.eval()
+for p in clip_model.parameters():
+ p.requires_grad = False
+
+net = vqvae.HumanVQVAE(args, ## use args to define different parameters in different quantizers
+ args.nb_code,
+ args.code_dim,
+ args.output_emb_width,
+ args.down_t,
+ args.stride_t,
+ args.width,
+ args.depth,
+ args.dilation_growth_rate)
+
+
+trans_encoder = trans.Text2Motion_Transformer(num_vq=args.nb_code,
+ embed_dim=args.embed_dim_gpt,
+ clip_dim=args.clip_dim,
+ block_size=args.block_size,
+ num_layers=args.num_layers,
+ n_head=args.n_head_gpt,
+ drop_out_rate=args.drop_out_rate,
+ fc_rate=args.ff_rate)
+
+
+print ('loading checkpoint from {}'.format(args.resume_pth))
+ckpt = torch.load(args.resume_pth, map_location='cpu')
+net.load_state_dict(ckpt['net'], strict=True)
+net.eval()
+net.cuda()
+
+if args.resume_trans is not None:
+ print ('loading transformer checkpoint from {}'.format(args.resume_trans))
+ ckpt = torch.load(args.resume_trans, map_location='cpu')
+ trans_encoder.load_state_dict(ckpt['trans'], strict=True)
+trans_encoder.train()
+trans_encoder.cuda()
+
+##### ---- Optimizer & Scheduler ---- #####
+optimizer = utils_model.initial_optim(args.decay_option, args.lr, args.weight_decay, trans_encoder, args.optimizer)
+scheduler = torch.optim.lr_scheduler.MultiStepLR(optimizer, milestones=args.lr_scheduler, gamma=args.gamma)
+
+##### ---- Optimization goals ---- #####
+loss_ce = torch.nn.CrossEntropyLoss()
+
+nb_iter, avg_loss_cls, avg_acc = 0, 0., 0.
+right_num = 0
+nb_sample_train = 0
+
+##### ---- get code ---- #####
+for batch in train_loader_token:
+ pose, name = batch
+ bs, seq = pose.shape[0], pose.shape[1]
+
+ pose = pose.cuda().float() # bs, nb_joints, joints_dim, seq_len
+ target = net.encode(pose)
+ target = target.cpu().numpy()
+ np.save(pjoin(args.vq_dir, name[0] +'.npy'), target)
+
+
+train_loader = dataset_TM_train.DATALoader(args.dataname, args.batch_size, args.nb_code, args.vq_name, unit_length=2**args.down_t)
+train_loader_iter = dataset_TM_train.cycle(train_loader)
+
+
+##### ---- Training ---- #####
+best_fid, best_iter, best_div, best_top1, best_top2, best_top3, best_matching, writer, logger = eval_trans.evaluation_transformer(args.out_dir, val_loader, net, trans_encoder, logger, writer, 0, best_fid=1000, best_iter=0, best_div=100, best_top1=0, best_top2=0, best_top3=0, best_matching=100, clip_model=clip_model, eval_wrapper=eval_wrapper)
+while nb_iter <= args.total_iter:
+
+ batch = next(train_loader_iter)
+ clip_text, m_tokens, m_tokens_len = batch
+ m_tokens, m_tokens_len = m_tokens.cuda(), m_tokens_len.cuda()
+ bs = m_tokens.shape[0]
+ target = m_tokens # (bs, 26)
+ target = target.cuda()
+
+ text = clip.tokenize(clip_text, truncate=True).cuda()
+
+ feat_clip_text = clip_model.encode_text(text).float()
+
+ input_index = target[:,:-1]
+
+ if args.pkeep == -1:
+ proba = np.random.rand(1)[0]
+ mask = torch.bernoulli(proba * torch.ones(input_index.shape,
+ device=input_index.device))
+ else:
+ mask = torch.bernoulli(args.pkeep * torch.ones(input_index.shape,
+ device=input_index.device))
+ mask = mask.round().to(dtype=torch.int64)
+ r_indices = torch.randint_like(input_index, args.nb_code)
+ a_indices = mask*input_index+(1-mask)*r_indices
+
+ cls_pred = trans_encoder(a_indices, feat_clip_text)
+ cls_pred = cls_pred.contiguous()
+
+ loss_cls = 0.0
+ for i in range(bs):
+ # loss function (26), (26, 513)
+ loss_cls += loss_ce(cls_pred[i][:m_tokens_len[i] + 1], target[i][:m_tokens_len[i] + 1]) / bs
+
+ # Accuracy
+ probs = torch.softmax(cls_pred[i][:m_tokens_len[i] + 1], dim=-1)
+
+ if args.if_maxtest:
+ _, cls_pred_index = torch.max(probs, dim=-1)
+
+ else:
+ dist = Categorical(probs)
+ cls_pred_index = dist.sample()
+ right_num += (cls_pred_index.flatten(0) == target[i][:m_tokens_len[i] + 1].flatten(0)).sum().item()
+
+ ## global loss
+ optimizer.zero_grad()
+ loss_cls.backward()
+ optimizer.step()
+ scheduler.step()
+
+ avg_loss_cls = avg_loss_cls + loss_cls.item()
+ nb_sample_train = nb_sample_train + (m_tokens_len + 1).sum().item()
+
+ nb_iter += 1
+ if nb_iter % args.print_iter == 0 :
+ avg_loss_cls = avg_loss_cls / args.print_iter
+ avg_acc = right_num * 100 / nb_sample_train
+ writer.add_scalar('./Loss/train', avg_loss_cls, nb_iter)
+ writer.add_scalar('./ACC/train', avg_acc, nb_iter)
+ msg = f"Train. Iter {nb_iter} : Loss. {avg_loss_cls:.5f}, ACC. {avg_acc:.4f}"
+ logger.info(msg)
+ avg_loss_cls = 0.
+ right_num = 0
+ nb_sample_train = 0
+
+ if nb_iter % args.eval_iter == 0:
+ best_fid, best_iter, best_div, best_top1, best_top2, best_top3, best_matching, writer, logger = eval_trans.evaluation_transformer(args.out_dir, val_loader, net, trans_encoder, logger, writer, nb_iter, best_fid, best_iter, best_div, best_top1, best_top2, best_top3, best_matching, clip_model=clip_model, eval_wrapper=eval_wrapper)
+
+ if nb_iter == args.total_iter:
+ msg_final = f"Train. Iter {best_iter} : FID. {best_fid:.5f}, Diversity. {best_div:.4f}, TOP1. {best_top1:.4f}, TOP2. {best_top2:.4f}, TOP3. {best_top3:.4f}"
+ logger.info(msg_final)
+ break
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/train_vq.py b/MuseV/MMCM/mmcm/t2p/train_vq.py
new file mode 100755
index 0000000000000000000000000000000000000000..d89b9930ba1262747542df3d5b2f03f8fab1b04a
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/train_vq.py
@@ -0,0 +1,171 @@
+import os
+import json
+
+import torch
+import torch.optim as optim
+from torch.utils.tensorboard import SummaryWriter
+
+import models.vqvae as vqvae
+import utils.losses as losses
+import options.option_vq as option_vq
+import utils.utils_model as utils_model
+from dataset import dataset_VQ, dataset_TM_eval
+import utils.eval_trans as eval_trans
+from options.get_eval_option import get_opt
+from models.evaluator_wrapper import EvaluatorModelWrapper
+import warnings
+warnings.filterwarnings('ignore')
+from utils.word_vectorizer import WordVectorizer
+
+def update_lr_warm_up(optimizer, nb_iter, warm_up_iter, lr):
+
+ current_lr = lr * (nb_iter + 1) / (warm_up_iter + 1)
+ for param_group in optimizer.param_groups:
+ param_group["lr"] = current_lr
+
+ return optimizer, current_lr
+
+##### ---- Exp dirs ---- #####
+args = option_vq.get_args_parser()
+torch.manual_seed(args.seed)
+
+args.out_dir = os.path.join(args.out_dir, f'{args.exp_name}')
+os.makedirs(args.out_dir, exist_ok = True)
+
+##### ---- Logger ---- #####
+logger = utils_model.get_logger(args.out_dir)
+writer = SummaryWriter(args.out_dir)
+logger.info(json.dumps(vars(args), indent=4, sort_keys=True))
+
+
+
+w_vectorizer = WordVectorizer('./glove', 'our_vab')
+
+if args.dataname == 'kit' :
+ dataset_opt_path = 'checkpoints/kit/Comp_v6_KLD005/opt.txt'
+ args.nb_joints = 21
+
+else :
+ dataset_opt_path = 'checkpoints/t2m/Comp_v6_KLD005/opt.txt'
+ args.nb_joints = 22
+
+logger.info(f'Training on {args.dataname}, motions are with {args.nb_joints} joints')
+
+wrapper_opt = get_opt(dataset_opt_path, torch.device('cuda'))
+eval_wrapper = EvaluatorModelWrapper(wrapper_opt)
+
+
+##### ---- Dataloader ---- #####
+train_loader = dataset_VQ.DATALoader(args.dataname,
+ args.batch_size,
+ window_size=args.window_size,
+ unit_length=2**args.down_t)
+
+train_loader_iter = dataset_VQ.cycle(train_loader)
+
+val_loader = dataset_TM_eval.DATALoader(args.dataname, False,
+ 32,
+ w_vectorizer,
+ unit_length=2**args.down_t)
+
+##### ---- Network ---- #####
+net = vqvae.HumanVQVAE(args, ## use args to define different parameters in different quantizers
+ args.nb_code,
+ args.code_dim,
+ args.output_emb_width,
+ args.down_t,
+ args.stride_t,
+ args.width,
+ args.depth,
+ args.dilation_growth_rate,
+ args.vq_act,
+ args.vq_norm)
+
+
+if args.resume_pth :
+ logger.info('loading checkpoint from {}'.format(args.resume_pth))
+ ckpt = torch.load(args.resume_pth, map_location='cpu')
+ net.load_state_dict(ckpt['net'], strict=True)
+net.train()
+net.cuda()
+
+##### ---- Optimizer & Scheduler ---- #####
+optimizer = optim.AdamW(net.parameters(), lr=args.lr, betas=(0.9, 0.99), weight_decay=args.weight_decay)
+scheduler = torch.optim.lr_scheduler.MultiStepLR(optimizer, milestones=args.lr_scheduler, gamma=args.gamma)
+
+
+Loss = losses.ReConsLoss(args.recons_loss, args.nb_joints)
+
+##### ------ warm-up ------- #####
+avg_recons, avg_perplexity, avg_commit = 0., 0., 0.
+
+for nb_iter in range(1, args.warm_up_iter):
+
+ optimizer, current_lr = update_lr_warm_up(optimizer, nb_iter, args.warm_up_iter, args.lr)
+
+ gt_motion = next(train_loader_iter)
+ gt_motion = gt_motion.cuda().float() # (bs, 64, dim)
+
+ pred_motion, loss_commit, perplexity = net(gt_motion)
+ loss_motion = Loss(pred_motion, gt_motion)
+ loss_vel = Loss.forward_vel(pred_motion, gt_motion)
+
+ loss = loss_motion + args.commit * loss_commit + args.loss_vel * loss_vel
+
+ optimizer.zero_grad()
+ loss.backward()
+ optimizer.step()
+
+ avg_recons += loss_motion.item()
+ avg_perplexity += perplexity.item()
+ avg_commit += loss_commit.item()
+
+ if nb_iter % args.print_iter == 0 :
+ avg_recons /= args.print_iter
+ avg_perplexity /= args.print_iter
+ avg_commit /= args.print_iter
+
+ logger.info(f"Warmup. Iter {nb_iter} : lr {current_lr:.5f} \t Commit. {avg_commit:.5f} \t PPL. {avg_perplexity:.2f} \t Recons. {avg_recons:.5f}")
+
+ avg_recons, avg_perplexity, avg_commit = 0., 0., 0.
+
+##### ---- Training ---- #####
+avg_recons, avg_perplexity, avg_commit = 0., 0., 0.
+best_fid, best_iter, best_div, best_top1, best_top2, best_top3, best_matching, writer, logger = eval_trans.evaluation_vqvae(args.out_dir, val_loader, net, logger, writer, 0, best_fid=1000, best_iter=0, best_div=100, best_top1=0, best_top2=0, best_top3=0, best_matching=100, eval_wrapper=eval_wrapper)
+
+for nb_iter in range(1, args.total_iter + 1):
+
+ gt_motion = next(train_loader_iter)
+ gt_motion = gt_motion.cuda().float() # bs, nb_joints, joints_dim, seq_len
+
+ pred_motion, loss_commit, perplexity = net(gt_motion)
+ loss_motion = Loss(pred_motion, gt_motion)
+ loss_vel = Loss.forward_vel(pred_motion, gt_motion)
+
+ loss = loss_motion + args.commit * loss_commit + args.loss_vel * loss_vel
+
+ optimizer.zero_grad()
+ loss.backward()
+ optimizer.step()
+ scheduler.step()
+
+ avg_recons += loss_motion.item()
+ avg_perplexity += perplexity.item()
+ avg_commit += loss_commit.item()
+
+ if nb_iter % args.print_iter == 0 :
+ avg_recons /= args.print_iter
+ avg_perplexity /= args.print_iter
+ avg_commit /= args.print_iter
+
+ writer.add_scalar('./Train/L1', avg_recons, nb_iter)
+ writer.add_scalar('./Train/PPL', avg_perplexity, nb_iter)
+ writer.add_scalar('./Train/Commit', avg_commit, nb_iter)
+
+ logger.info(f"Train. Iter {nb_iter} : \t Commit. {avg_commit:.5f} \t PPL. {avg_perplexity:.2f} \t Recons. {avg_recons:.5f}")
+
+ avg_recons, avg_perplexity, avg_commit = 0., 0., 0.,
+
+ if nb_iter % args.eval_iter==0 :
+ best_fid, best_iter, best_div, best_top1, best_top2, best_top3, best_matching, writer, logger = eval_trans.evaluation_vqvae(args.out_dir, val_loader, net, logger, writer, nb_iter, best_fid, best_iter, best_div, best_top1, best_top2, best_top3, best_matching, eval_wrapper=eval_wrapper)
+
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/utils/config.py b/MuseV/MMCM/mmcm/t2p/utils/config.py
new file mode 100755
index 0000000000000000000000000000000000000000..3489a226c8ef2df8b876052043c9a74ed7222dc2
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/utils/config.py
@@ -0,0 +1,17 @@
+import os
+
+SMPL_DATA_PATH = "/group/30065/users/zhanchao/code/MMCM/mmcm/t2p/body_models/smpl"
+
+SMPL_KINTREE_PATH = os.path.join(SMPL_DATA_PATH, "kintree_table.pkl")
+SMPL_MODEL_PATH = os.path.join(SMPL_DATA_PATH, "SMPL_NEUTRAL.pkl")
+JOINT_REGRESSOR_TRAIN_EXTRA = os.path.join(SMPL_DATA_PATH, 'J_regressor_extra.npy')
+
+ROT_CONVENTION_TO_ROT_NUMBER = {
+ 'legacy': 23,
+ 'no_hands': 21,
+ 'full_hands': 51,
+ 'mitten_hands': 33,
+}
+
+GENDERS = ['neutral', 'male', 'female']
+NUM_BETAS = 10
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/utils/eval_trans.py b/MuseV/MMCM/mmcm/t2p/utils/eval_trans.py
new file mode 100755
index 0000000000000000000000000000000000000000..6e5fb874b691ca4d2fea50eda20677611997b1e7
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/utils/eval_trans.py
@@ -0,0 +1,580 @@
+import os
+
+import clip
+import numpy as np
+import torch
+from scipy import linalg
+
+import ..visualization.plot_3d_global as plot_3d
+from .motion_process import recover_from_ric
+
+
+def tensorborad_add_video_xyz(writer, xyz, nb_iter, tag, nb_vis=4, title_batch=None, outname=None):
+ xyz = xyz[:1]
+ bs, seq = xyz.shape[:2]
+ xyz = xyz.reshape(bs, seq, -1, 3)
+ plot_xyz = plot_3d.draw_to_batch(xyz.cpu().numpy(),title_batch, outname)
+ plot_xyz =np.transpose(plot_xyz, (0, 1, 4, 2, 3))
+ writer.add_video(tag, plot_xyz, nb_iter, fps = 20)
+
+@torch.no_grad()
+def evaluation_vqvae(out_dir, val_loader, net, logger, writer, nb_iter, best_fid, best_iter, best_div, best_top1, best_top2, best_top3, best_matching, eval_wrapper, draw = True, save = True, savegif=False, savenpy=False) :
+ net.eval()
+ nb_sample = 0
+
+ draw_org = []
+ draw_pred = []
+ draw_text = []
+
+
+ motion_annotation_list = []
+ motion_pred_list = []
+
+ R_precision_real = 0
+ R_precision = 0
+
+ nb_sample = 0
+ matching_score_real = 0
+ matching_score_pred = 0
+ for batch in val_loader:
+ word_embeddings, pos_one_hots, caption, sent_len, motion, m_length, token, name = batch
+
+ motion = motion.cuda()
+ et, em = eval_wrapper.get_co_embeddings(word_embeddings, pos_one_hots, sent_len, motion, m_length)
+ bs, seq = motion.shape[0], motion.shape[1]
+
+ num_joints = 21 if motion.shape[-1] == 251 else 22
+
+ pred_pose_eval = torch.zeros((bs, seq, motion.shape[-1])).cuda()
+
+ for i in range(bs):
+ pose = val_loader.dataset.inv_transform(motion[i:i+1, :m_length[i], :].detach().cpu().numpy())
+ pose_xyz = recover_from_ric(torch.from_numpy(pose).float().cuda(), num_joints)
+
+
+ pred_pose, loss_commit, perplexity = net(motion[i:i+1, :m_length[i]])
+ pred_denorm = val_loader.dataset.inv_transform(pred_pose.detach().cpu().numpy())
+ pred_xyz = recover_from_ric(torch.from_numpy(pred_denorm).float().cuda(), num_joints)
+
+ if savenpy:
+ np.save(os.path.join(out_dir, name[i]+'_gt.npy'), pose_xyz[:, :m_length[i]].cpu().numpy())
+ np.save(os.path.join(out_dir, name[i]+'_pred.npy'), pred_xyz.detach().cpu().numpy())
+
+ pred_pose_eval[i:i+1,:m_length[i],:] = pred_pose
+
+ if i < min(4, bs):
+ draw_org.append(pose_xyz)
+ draw_pred.append(pred_xyz)
+ draw_text.append(caption[i])
+
+ et_pred, em_pred = eval_wrapper.get_co_embeddings(word_embeddings, pos_one_hots, sent_len, pred_pose_eval, m_length)
+
+ motion_pred_list.append(em_pred)
+ motion_annotation_list.append(em)
+
+ temp_R, temp_match = calculate_R_precision(et.cpu().numpy(), em.cpu().numpy(), top_k=3, sum_all=True)
+ R_precision_real += temp_R
+ matching_score_real += temp_match
+ temp_R, temp_match = calculate_R_precision(et_pred.cpu().numpy(), em_pred.cpu().numpy(), top_k=3, sum_all=True)
+ R_precision += temp_R
+ matching_score_pred += temp_match
+
+ nb_sample += bs
+
+ motion_annotation_np = torch.cat(motion_annotation_list, dim=0).cpu().numpy()
+ motion_pred_np = torch.cat(motion_pred_list, dim=0).cpu().numpy()
+ gt_mu, gt_cov = calculate_activation_statistics(motion_annotation_np)
+ mu, cov= calculate_activation_statistics(motion_pred_np)
+
+ diversity_real = calculate_diversity(motion_annotation_np, 300 if nb_sample > 300 else 100)
+ diversity = calculate_diversity(motion_pred_np, 300 if nb_sample > 300 else 100)
+
+ R_precision_real = R_precision_real / nb_sample
+ R_precision = R_precision / nb_sample
+
+ matching_score_real = matching_score_real / nb_sample
+ matching_score_pred = matching_score_pred / nb_sample
+
+ fid = calculate_frechet_distance(gt_mu, gt_cov, mu, cov)
+
+ msg = f"--> \t Eva. Iter {nb_iter} :, FID. {fid:.4f}, Diversity Real. {diversity_real:.4f}, Diversity. {diversity:.4f}, R_precision_real. {R_precision_real}, R_precision. {R_precision}, matching_score_real. {matching_score_real}, matching_score_pred. {matching_score_pred}"
+ logger.info(msg)
+
+ if draw:
+ writer.add_scalar('./Test/FID', fid, nb_iter)
+ writer.add_scalar('./Test/Diversity', diversity, nb_iter)
+ writer.add_scalar('./Test/top1', R_precision[0], nb_iter)
+ writer.add_scalar('./Test/top2', R_precision[1], nb_iter)
+ writer.add_scalar('./Test/top3', R_precision[2], nb_iter)
+ writer.add_scalar('./Test/matching_score', matching_score_pred, nb_iter)
+
+
+ if nb_iter % 5000 == 0 :
+ for ii in range(4):
+ tensorborad_add_video_xyz(writer, draw_org[ii], nb_iter, tag='./Vis/org_eval'+str(ii), nb_vis=1, title_batch=[draw_text[ii]], outname=[os.path.join(out_dir, 'gt'+str(ii)+'.gif')] if savegif else None)
+
+ if nb_iter % 5000 == 0 :
+ for ii in range(4):
+ tensorborad_add_video_xyz(writer, draw_pred[ii], nb_iter, tag='./Vis/pred_eval'+str(ii), nb_vis=1, title_batch=[draw_text[ii]], outname=[os.path.join(out_dir, 'pred'+str(ii)+'.gif')] if savegif else None)
+
+
+ if fid < best_fid :
+ msg = f"--> --> \t FID Improved from {best_fid:.5f} to {fid:.5f} !!!"
+ logger.info(msg)
+ best_fid, best_iter = fid, nb_iter
+ if save:
+ torch.save({'net' : net.state_dict()}, os.path.join(out_dir, 'net_best_fid.pth'))
+
+ if abs(diversity_real - diversity) < abs(diversity_real - best_div) :
+ msg = f"--> --> \t Diversity Improved from {best_div:.5f} to {diversity:.5f} !!!"
+ logger.info(msg)
+ best_div = diversity
+ if save:
+ torch.save({'net' : net.state_dict()}, os.path.join(out_dir, 'net_best_div.pth'))
+
+ if R_precision[0] > best_top1 :
+ msg = f"--> --> \t Top1 Improved from {best_top1:.4f} to {R_precision[0]:.4f} !!!"
+ logger.info(msg)
+ best_top1 = R_precision[0]
+ if save:
+ torch.save({'net' : net.state_dict()}, os.path.join(out_dir, 'net_best_top1.pth'))
+
+ if R_precision[1] > best_top2 :
+ msg = f"--> --> \t Top2 Improved from {best_top2:.4f} to {R_precision[1]:.4f} !!!"
+ logger.info(msg)
+ best_top2 = R_precision[1]
+
+ if R_precision[2] > best_top3 :
+ msg = f"--> --> \t Top3 Improved from {best_top3:.4f} to {R_precision[2]:.4f} !!!"
+ logger.info(msg)
+ best_top3 = R_precision[2]
+
+ if matching_score_pred < best_matching :
+ msg = f"--> --> \t matching_score Improved from {best_matching:.5f} to {matching_score_pred:.5f} !!!"
+ logger.info(msg)
+ best_matching = matching_score_pred
+ if save:
+ torch.save({'net' : net.state_dict()}, os.path.join(out_dir, 'net_best_matching.pth'))
+
+ if save:
+ torch.save({'net' : net.state_dict()}, os.path.join(out_dir, 'net_last.pth'))
+
+ net.train()
+ return best_fid, best_iter, best_div, best_top1, best_top2, best_top3, best_matching, writer, logger
+
+
+@torch.no_grad()
+def evaluation_transformer(out_dir, val_loader, net, trans, logger, writer, nb_iter, best_fid, best_iter, best_div, best_top1, best_top2, best_top3, best_matching, clip_model, eval_wrapper, draw = True, save = True, savegif=False) :
+
+ trans.eval()
+ nb_sample = 0
+
+ draw_org = []
+ draw_pred = []
+ draw_text = []
+ draw_text_pred = []
+
+ motion_annotation_list = []
+ motion_pred_list = []
+ R_precision_real = 0
+ R_precision = 0
+ matching_score_real = 0
+ matching_score_pred = 0
+
+ nb_sample = 0
+ for i in range(1):
+ for batch in val_loader:
+ word_embeddings, pos_one_hots, clip_text, sent_len, pose, m_length, token, name = batch
+
+ bs, seq = pose.shape[:2]
+ num_joints = 21 if pose.shape[-1] == 251 else 22
+
+ text = clip.tokenize(clip_text, truncate=True).cuda()
+
+ feat_clip_text = clip_model.encode_text(text).float()
+ pred_pose_eval = torch.zeros((bs, seq, pose.shape[-1])).cuda()
+ pred_len = torch.ones(bs).long()
+
+ for k in range(bs):
+ try:
+ index_motion = trans.sample(feat_clip_text[k:k+1], False)
+ except:
+ index_motion = torch.ones(1,1).cuda().long()
+
+ pred_pose = net.forward_decoder(index_motion)
+ cur_len = pred_pose.shape[1]
+
+ pred_len[k] = min(cur_len, seq)
+ pred_pose_eval[k:k+1, :cur_len] = pred_pose[:, :seq]
+
+ if draw:
+ pred_denorm = val_loader.dataset.inv_transform(pred_pose.detach().cpu().numpy())
+ pred_xyz = recover_from_ric(torch.from_numpy(pred_denorm).float().cuda(), num_joints)
+
+ if i == 0 and k < 4:
+ draw_pred.append(pred_xyz)
+ draw_text_pred.append(clip_text[k])
+
+ et_pred, em_pred = eval_wrapper.get_co_embeddings(word_embeddings, pos_one_hots, sent_len, pred_pose_eval, pred_len)
+
+ if i == 0:
+ pose = pose.cuda().float()
+
+ et, em = eval_wrapper.get_co_embeddings(word_embeddings, pos_one_hots, sent_len, pose, m_length)
+ motion_annotation_list.append(em)
+ motion_pred_list.append(em_pred)
+
+ if draw:
+ pose = val_loader.dataset.inv_transform(pose.detach().cpu().numpy())
+ pose_xyz = recover_from_ric(torch.from_numpy(pose).float().cuda(), num_joints)
+
+
+ for j in range(min(4, bs)):
+ draw_org.append(pose_xyz[j][:m_length[j]].unsqueeze(0))
+ draw_text.append(clip_text[j])
+
+ temp_R, temp_match = calculate_R_precision(et.cpu().numpy(), em.cpu().numpy(), top_k=3, sum_all=True)
+ R_precision_real += temp_R
+ matching_score_real += temp_match
+ temp_R, temp_match = calculate_R_precision(et_pred.cpu().numpy(), em_pred.cpu().numpy(), top_k=3, sum_all=True)
+ R_precision += temp_R
+ matching_score_pred += temp_match
+
+ nb_sample += bs
+
+ motion_annotation_np = torch.cat(motion_annotation_list, dim=0).cpu().numpy()
+ motion_pred_np = torch.cat(motion_pred_list, dim=0).cpu().numpy()
+ gt_mu, gt_cov = calculate_activation_statistics(motion_annotation_np)
+ mu, cov= calculate_activation_statistics(motion_pred_np)
+
+ diversity_real = calculate_diversity(motion_annotation_np, 300 if nb_sample > 300 else 100)
+ diversity = calculate_diversity(motion_pred_np, 300 if nb_sample > 300 else 100)
+
+ R_precision_real = R_precision_real / nb_sample
+ R_precision = R_precision / nb_sample
+
+ matching_score_real = matching_score_real / nb_sample
+ matching_score_pred = matching_score_pred / nb_sample
+
+
+ fid = calculate_frechet_distance(gt_mu, gt_cov, mu, cov)
+
+ msg = f"--> \t Eva. Iter {nb_iter} :, FID. {fid:.4f}, Diversity Real. {diversity_real:.4f}, Diversity. {diversity:.4f}, R_precision_real. {R_precision_real}, R_precision. {R_precision}, matching_score_real. {matching_score_real}, matching_score_pred. {matching_score_pred}"
+ logger.info(msg)
+
+
+ if draw:
+ writer.add_scalar('./Test/FID', fid, nb_iter)
+ writer.add_scalar('./Test/Diversity', diversity, nb_iter)
+ writer.add_scalar('./Test/top1', R_precision[0], nb_iter)
+ writer.add_scalar('./Test/top2', R_precision[1], nb_iter)
+ writer.add_scalar('./Test/top3', R_precision[2], nb_iter)
+ writer.add_scalar('./Test/matching_score', matching_score_pred, nb_iter)
+
+
+ if nb_iter % 10000 == 0 :
+ for ii in range(4):
+ tensorborad_add_video_xyz(writer, draw_org[ii], nb_iter, tag='./Vis/org_eval'+str(ii), nb_vis=1, title_batch=[draw_text[ii]], outname=[os.path.join(out_dir, 'gt'+str(ii)+'.gif')] if savegif else None)
+
+ if nb_iter % 10000 == 0 :
+ for ii in range(4):
+ tensorborad_add_video_xyz(writer, draw_pred[ii], nb_iter, tag='./Vis/pred_eval'+str(ii), nb_vis=1, title_batch=[draw_text_pred[ii]], outname=[os.path.join(out_dir, 'pred'+str(ii)+'.gif')] if savegif else None)
+
+
+ if fid < best_fid :
+ msg = f"--> --> \t FID Improved from {best_fid:.5f} to {fid:.5f} !!!"
+ logger.info(msg)
+ best_fid, best_iter = fid, nb_iter
+ if save:
+ torch.save({'trans' : trans.state_dict()}, os.path.join(out_dir, 'net_best_fid.pth'))
+
+ if matching_score_pred < best_matching :
+ msg = f"--> --> \t matching_score Improved from {best_matching:.5f} to {matching_score_pred:.5f} !!!"
+ logger.info(msg)
+ best_matching = matching_score_pred
+
+ if abs(diversity_real - diversity) < abs(diversity_real - best_div) :
+ msg = f"--> --> \t Diversity Improved from {best_div:.5f} to {diversity:.5f} !!!"
+ logger.info(msg)
+ best_div = diversity
+
+ if R_precision[0] > best_top1 :
+ msg = f"--> --> \t Top1 Improved from {best_top1:.4f} to {R_precision[0]:.4f} !!!"
+ logger.info(msg)
+ best_top1 = R_precision[0]
+
+ if R_precision[1] > best_top2 :
+ msg = f"--> --> \t Top2 Improved from {best_top2:.4f} to {R_precision[1]:.4f} !!!"
+ logger.info(msg)
+ best_top2 = R_precision[1]
+
+ if R_precision[2] > best_top3 :
+ msg = f"--> --> \t Top3 Improved from {best_top3:.4f} to {R_precision[2]:.4f} !!!"
+ logger.info(msg)
+ best_top3 = R_precision[2]
+
+ if save:
+ torch.save({'trans' : trans.state_dict()}, os.path.join(out_dir, 'net_last.pth'))
+
+ trans.train()
+ return best_fid, best_iter, best_div, best_top1, best_top2, best_top3, best_matching, writer, logger
+
+
+@torch.no_grad()
+def evaluation_transformer_test(out_dir, val_loader, net, trans, logger, writer, nb_iter, best_fid, best_iter, best_div, best_top1, best_top2, best_top3, best_matching, best_multi, clip_model, eval_wrapper, draw = True, save = True, savegif=False, savenpy=False) :
+
+ trans.eval()
+ nb_sample = 0
+
+ draw_org = []
+ draw_pred = []
+ draw_text = []
+ draw_text_pred = []
+ draw_name = []
+
+ motion_annotation_list = []
+ motion_pred_list = []
+ motion_multimodality = []
+ R_precision_real = 0
+ R_precision = 0
+ matching_score_real = 0
+ matching_score_pred = 0
+
+ nb_sample = 0
+
+ for batch in val_loader:
+
+ word_embeddings, pos_one_hots, clip_text, sent_len, pose, m_length, token, name = batch
+ bs, seq = pose.shape[:2]
+ num_joints = 21 if pose.shape[-1] == 251 else 22
+
+ text = clip.tokenize(clip_text, truncate=True).cuda()
+
+ feat_clip_text = clip_model.encode_text(text).float()
+ motion_multimodality_batch = []
+ for i in range(30):
+ pred_pose_eval = torch.zeros((bs, seq, pose.shape[-1])).cuda()
+ pred_len = torch.ones(bs).long()
+
+ for k in range(bs):
+ try:
+ index_motion = trans.sample(feat_clip_text[k:k+1], True)
+ except:
+ index_motion = torch.ones(1,1).cuda().long()
+
+ pred_pose = net.forward_decoder(index_motion)
+ cur_len = pred_pose.shape[1]
+
+ pred_len[k] = min(cur_len, seq)
+ pred_pose_eval[k:k+1, :cur_len] = pred_pose[:, :seq]
+
+ if i == 0 and (draw or savenpy):
+ pred_denorm = val_loader.dataset.inv_transform(pred_pose.detach().cpu().numpy())
+ pred_xyz = recover_from_ric(torch.from_numpy(pred_denorm).float().cuda(), num_joints)
+
+ if savenpy:
+ np.save(os.path.join(out_dir, name[k]+'_pred.npy'), pred_xyz.detach().cpu().numpy())
+
+ if draw:
+ if i == 0:
+ draw_pred.append(pred_xyz)
+ draw_text_pred.append(clip_text[k])
+ draw_name.append(name[k])
+
+ et_pred, em_pred = eval_wrapper.get_co_embeddings(word_embeddings, pos_one_hots, sent_len, pred_pose_eval, pred_len)
+
+ motion_multimodality_batch.append(em_pred.reshape(bs, 1, -1))
+
+ if i == 0:
+ pose = pose.cuda().float()
+
+ et, em = eval_wrapper.get_co_embeddings(word_embeddings, pos_one_hots, sent_len, pose, m_length)
+ motion_annotation_list.append(em)
+ motion_pred_list.append(em_pred)
+
+ if draw or savenpy:
+ pose = val_loader.dataset.inv_transform(pose.detach().cpu().numpy())
+ pose_xyz = recover_from_ric(torch.from_numpy(pose).float().cuda(), num_joints)
+
+ if savenpy:
+ for j in range(bs):
+ np.save(os.path.join(out_dir, name[j]+'_gt.npy'), pose_xyz[j][:m_length[j]].unsqueeze(0).cpu().numpy())
+
+ if draw:
+ for j in range(bs):
+ draw_org.append(pose_xyz[j][:m_length[j]].unsqueeze(0))
+ draw_text.append(clip_text[j])
+
+ temp_R, temp_match = calculate_R_precision(et.cpu().numpy(), em.cpu().numpy(), top_k=3, sum_all=True)
+ R_precision_real += temp_R
+ matching_score_real += temp_match
+ temp_R, temp_match = calculate_R_precision(et_pred.cpu().numpy(), em_pred.cpu().numpy(), top_k=3, sum_all=True)
+ R_precision += temp_R
+ matching_score_pred += temp_match
+
+ nb_sample += bs
+
+ motion_multimodality.append(torch.cat(motion_multimodality_batch, dim=1))
+
+ motion_annotation_np = torch.cat(motion_annotation_list, dim=0).cpu().numpy()
+ motion_pred_np = torch.cat(motion_pred_list, dim=0).cpu().numpy()
+ gt_mu, gt_cov = calculate_activation_statistics(motion_annotation_np)
+ mu, cov= calculate_activation_statistics(motion_pred_np)
+
+ diversity_real = calculate_diversity(motion_annotation_np, 300 if nb_sample > 300 else 100)
+ diversity = calculate_diversity(motion_pred_np, 300 if nb_sample > 300 else 100)
+
+ R_precision_real = R_precision_real / nb_sample
+ R_precision = R_precision / nb_sample
+
+ matching_score_real = matching_score_real / nb_sample
+ matching_score_pred = matching_score_pred / nb_sample
+
+ multimodality = 0
+ motion_multimodality = torch.cat(motion_multimodality, dim=0).cpu().numpy()
+ multimodality = calculate_multimodality(motion_multimodality, 10)
+
+ fid = calculate_frechet_distance(gt_mu, gt_cov, mu, cov)
+
+ msg = f"--> \t Eva. Iter {nb_iter} :, FID. {fid:.4f}, Diversity Real. {diversity_real:.4f}, Diversity. {diversity:.4f}, R_precision_real. {R_precision_real}, R_precision. {R_precision}, matching_score_real. {matching_score_real}, matching_score_pred. {matching_score_pred}, multimodality. {multimodality:.4f}"
+ logger.info(msg)
+
+
+ if draw:
+ for ii in range(len(draw_org)):
+ tensorborad_add_video_xyz(writer, draw_org[ii], nb_iter, tag='./Vis/'+draw_name[ii]+'_org', nb_vis=1, title_batch=[draw_text[ii]], outname=[os.path.join(out_dir, draw_name[ii]+'_skel_gt.gif')] if savegif else None)
+
+ tensorborad_add_video_xyz(writer, draw_pred[ii], nb_iter, tag='./Vis/'+draw_name[ii]+'_pred', nb_vis=1, title_batch=[draw_text_pred[ii]], outname=[os.path.join(out_dir, draw_name[ii]+'_skel_pred.gif')] if savegif else None)
+
+ trans.train()
+ return fid, best_iter, diversity, R_precision[0], R_precision[1], R_precision[2], matching_score_pred, multimodality, writer, logger
+
+# (X - X_train)*(X - X_train) = -2X*X_train + X*X + X_train*X_train
+def euclidean_distance_matrix(matrix1, matrix2):
+ """
+ Params:
+ -- matrix1: N1 x D
+ -- matrix2: N2 x D
+ Returns:
+ -- dist: N1 x N2
+ dist[i, j] == distance(matrix1[i], matrix2[j])
+ """
+ assert matrix1.shape[1] == matrix2.shape[1]
+ d1 = -2 * np.dot(matrix1, matrix2.T) # shape (num_test, num_train)
+ d2 = np.sum(np.square(matrix1), axis=1, keepdims=True) # shape (num_test, 1)
+ d3 = np.sum(np.square(matrix2), axis=1) # shape (num_train, )
+ dists = np.sqrt(d1 + d2 + d3) # broadcasting
+ return dists
+
+
+
+def calculate_top_k(mat, top_k):
+ size = mat.shape[0]
+ gt_mat = np.expand_dims(np.arange(size), 1).repeat(size, 1)
+ bool_mat = (mat == gt_mat)
+ correct_vec = False
+ top_k_list = []
+ for i in range(top_k):
+# print(correct_vec, bool_mat[:, i])
+ correct_vec = (correct_vec | bool_mat[:, i])
+ # print(correct_vec)
+ top_k_list.append(correct_vec[:, None])
+ top_k_mat = np.concatenate(top_k_list, axis=1)
+ return top_k_mat
+
+
+def calculate_R_precision(embedding1, embedding2, top_k, sum_all=False):
+ dist_mat = euclidean_distance_matrix(embedding1, embedding2)
+ matching_score = dist_mat.trace()
+ argmax = np.argsort(dist_mat, axis=1)
+ top_k_mat = calculate_top_k(argmax, top_k)
+ if sum_all:
+ return top_k_mat.sum(axis=0), matching_score
+ else:
+ return top_k_mat, matching_score
+
+def calculate_multimodality(activation, multimodality_times):
+ assert len(activation.shape) == 3
+ assert activation.shape[1] > multimodality_times
+ num_per_sent = activation.shape[1]
+
+ first_dices = np.random.choice(num_per_sent, multimodality_times, replace=False)
+ second_dices = np.random.choice(num_per_sent, multimodality_times, replace=False)
+ dist = linalg.norm(activation[:, first_dices] - activation[:, second_dices], axis=2)
+ return dist.mean()
+
+
+def calculate_diversity(activation, diversity_times):
+ assert len(activation.shape) == 2
+ assert activation.shape[0] > diversity_times
+ num_samples = activation.shape[0]
+
+ first_indices = np.random.choice(num_samples, diversity_times, replace=False)
+ second_indices = np.random.choice(num_samples, diversity_times, replace=False)
+ dist = linalg.norm(activation[first_indices] - activation[second_indices], axis=1)
+ return dist.mean()
+
+
+
+def calculate_frechet_distance(mu1, sigma1, mu2, sigma2, eps=1e-6):
+
+ mu1 = np.atleast_1d(mu1)
+ mu2 = np.atleast_1d(mu2)
+
+ sigma1 = np.atleast_2d(sigma1)
+ sigma2 = np.atleast_2d(sigma2)
+
+ assert mu1.shape == mu2.shape, \
+ 'Training and test mean vectors have different lengths'
+ assert sigma1.shape == sigma2.shape, \
+ 'Training and test covariances have different dimensions'
+
+ diff = mu1 - mu2
+
+ # Product might be almost singular
+ covmean, _ = linalg.sqrtm(sigma1.dot(sigma2), disp=False)
+ if not np.isfinite(covmean).all():
+ msg = ('fid calculation produces singular product; '
+ 'adding %s to diagonal of cov estimates') % eps
+ print(msg)
+ offset = np.eye(sigma1.shape[0]) * eps
+ covmean = linalg.sqrtm((sigma1 + offset).dot(sigma2 + offset))
+
+ # Numerical error might give slight imaginary component
+ if np.iscomplexobj(covmean):
+ if not np.allclose(np.diagonal(covmean).imag, 0, atol=1e-3):
+ m = np.max(np.abs(covmean.imag))
+ raise ValueError('Imaginary component {}'.format(m))
+ covmean = covmean.real
+
+ tr_covmean = np.trace(covmean)
+
+ return (diff.dot(diff) + np.trace(sigma1)
+ + np.trace(sigma2) - 2 * tr_covmean)
+
+
+
+def calculate_activation_statistics(activations):
+
+ mu = np.mean(activations, axis=0)
+ cov = np.cov(activations, rowvar=False)
+ return mu, cov
+
+
+def calculate_frechet_feature_distance(feature_list1, feature_list2):
+ feature_list1 = np.stack(feature_list1)
+ feature_list2 = np.stack(feature_list2)
+
+ # normalize the scale
+ mean = np.mean(feature_list1, axis=0)
+ std = np.std(feature_list1, axis=0) + 1e-10
+ feature_list1 = (feature_list1 - mean) / std
+ feature_list2 = (feature_list2 - mean) / std
+
+ dist = calculate_frechet_distance(
+ mu1=np.mean(feature_list1, axis=0),
+ sigma1=np.cov(feature_list1, rowvar=False),
+ mu2=np.mean(feature_list2, axis=0),
+ sigma2=np.cov(feature_list2, rowvar=False),
+ )
+ return dist
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/utils/losses.py b/MuseV/MMCM/mmcm/t2p/utils/losses.py
new file mode 100755
index 0000000000000000000000000000000000000000..1998161032731fc2c3edae701700679c00fd00d0
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/utils/losses.py
@@ -0,0 +1,30 @@
+import torch
+import torch.nn as nn
+
+class ReConsLoss(nn.Module):
+ def __init__(self, recons_loss, nb_joints):
+ super(ReConsLoss, self).__init__()
+
+ if recons_loss == 'l1':
+ self.Loss = torch.nn.L1Loss()
+ elif recons_loss == 'l2' :
+ self.Loss = torch.nn.MSELoss()
+ elif recons_loss == 'l1_smooth' :
+ self.Loss = torch.nn.SmoothL1Loss()
+
+ # 4 global motion associated to root
+ # 12 local motion (3 local xyz, 3 vel xyz, 6 rot6d)
+ # 3 global vel xyz
+ # 4 foot contact
+ self.nb_joints = nb_joints
+ self.motion_dim = (nb_joints - 1) * 12 + 4 + 3 + 4
+
+ def forward(self, motion_pred, motion_gt) :
+ loss = self.Loss(motion_pred[..., : self.motion_dim], motion_gt[..., :self.motion_dim])
+ return loss
+
+ def forward_vel(self, motion_pred, motion_gt) :
+ loss = self.Loss(motion_pred[..., 4 : (self.nb_joints - 1) * 3 + 4], motion_gt[..., 4 : (self.nb_joints - 1) * 3 + 4])
+ return loss
+
+
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/utils/motion_process.py b/MuseV/MMCM/mmcm/t2p/utils/motion_process.py
new file mode 100755
index 0000000000000000000000000000000000000000..d8e203292dd3c629bf14fd48f94c9f10d8b4eeda
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/utils/motion_process.py
@@ -0,0 +1,59 @@
+import torch
+from .quaternion import quaternion_to_cont6d, qrot, qinv
+
+def recover_root_rot_pos(data):
+ rot_vel = data[..., 0]
+ r_rot_ang = torch.zeros_like(rot_vel).to(data.device)
+ '''Get Y-axis rotation from rotation velocity'''
+ r_rot_ang[..., 1:] = rot_vel[..., :-1]
+ r_rot_ang = torch.cumsum(r_rot_ang, dim=-1)
+
+ r_rot_quat = torch.zeros(data.shape[:-1] + (4,)).to(data.device)
+ r_rot_quat[..., 0] = torch.cos(r_rot_ang)
+ r_rot_quat[..., 2] = torch.sin(r_rot_ang)
+
+ r_pos = torch.zeros(data.shape[:-1] + (3,)).to(data.device)
+ r_pos[..., 1:, [0, 2]] = data[..., :-1, 1:3]
+ '''Add Y-axis rotation to root position'''
+ r_pos = qrot(qinv(r_rot_quat), r_pos)
+
+ r_pos = torch.cumsum(r_pos, dim=-2)
+
+ r_pos[..., 1] = data[..., 3]
+ return r_rot_quat, r_pos
+
+
+def recover_from_rot(data, joints_num, skeleton):
+ r_rot_quat, r_pos = recover_root_rot_pos(data)
+
+ r_rot_cont6d = quaternion_to_cont6d(r_rot_quat)
+
+ start_indx = 1 + 2 + 1 + (joints_num - 1) * 3
+ end_indx = start_indx + (joints_num - 1) * 6
+ cont6d_params = data[..., start_indx:end_indx]
+ # print(r_rot_cont6d.shape, cont6d_params.shape, r_pos.shape)
+ cont6d_params = torch.cat([r_rot_cont6d, cont6d_params], dim=-1)
+ cont6d_params = cont6d_params.view(-1, joints_num, 6)
+
+ positions = skeleton.forward_kinematics_cont6d(cont6d_params, r_pos)
+
+ return positions
+
+
+def recover_from_ric(data, joints_num):
+ r_rot_quat, r_pos = recover_root_rot_pos(data)
+ positions = data[..., 4:(joints_num - 1) * 3 + 4]
+ positions = positions.view(positions.shape[:-1] + (-1, 3))
+
+ '''Add Y-axis rotation to local joints'''
+ positions = qrot(qinv(r_rot_quat[..., None, :]).expand(positions.shape[:-1] + (4,)), positions)
+
+ '''Add root XZ to joints'''
+ positions[..., 0] += r_pos[..., 0:1]
+ positions[..., 2] += r_pos[..., 2:3]
+
+ '''Concate root and joints'''
+ positions = torch.cat([r_pos.unsqueeze(-2), positions], dim=-2)
+
+ return positions
+
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/utils/paramUtil.py b/MuseV/MMCM/mmcm/t2p/utils/paramUtil.py
new file mode 100755
index 0000000000000000000000000000000000000000..a9f1708b85ca80a9051cb3675cec9b999a0d0e2b
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/utils/paramUtil.py
@@ -0,0 +1,63 @@
+import numpy as np
+
+# Define a kinematic tree for the skeletal struture
+kit_kinematic_chain = [[0, 11, 12, 13, 14, 15], [0, 16, 17, 18, 19, 20], [0, 1, 2, 3, 4], [3, 5, 6, 7], [3, 8, 9, 10]]
+
+kit_raw_offsets = np.array(
+ [
+ [0, 0, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [1, 0, 0],
+ [0, -1, 0],
+ [0, -1, 0],
+ [-1, 0, 0],
+ [0, -1, 0],
+ [0, -1, 0],
+ [1, 0, 0],
+ [0, -1, 0],
+ [0, -1, 0],
+ [0, 0, 1],
+ [0, 0, 1],
+ [-1, 0, 0],
+ [0, -1, 0],
+ [0, -1, 0],
+ [0, 0, 1],
+ [0, 0, 1]
+ ]
+)
+
+t2m_raw_offsets = np.array([[0,0,0],
+ [1,0,0],
+ [-1,0,0],
+ [0,1,0],
+ [0,-1,0],
+ [0,-1,0],
+ [0,1,0],
+ [0,-1,0],
+ [0,-1,0],
+ [0,1,0],
+ [0,0,1],
+ [0,0,1],
+ [0,1,0],
+ [1,0,0],
+ [-1,0,0],
+ [0,0,1],
+ [0,-1,0],
+ [0,-1,0],
+ [0,-1,0],
+ [0,-1,0],
+ [0,-1,0],
+ [0,-1,0]])
+
+t2m_kinematic_chain = [[0, 2, 5, 8, 11], [0, 1, 4, 7, 10], [0, 3, 6, 9, 12, 15], [9, 14, 17, 19, 21], [9, 13, 16, 18, 20]]
+t2m_left_hand_chain = [[20, 22, 23, 24], [20, 34, 35, 36], [20, 25, 26, 27], [20, 31, 32, 33], [20, 28, 29, 30]]
+t2m_right_hand_chain = [[21, 43, 44, 45], [21, 46, 47, 48], [21, 40, 41, 42], [21, 37, 38, 39], [21, 49, 50, 51]]
+
+
+kit_tgt_skel_id = '03950'
+
+t2m_tgt_skel_id = '000021'
+
diff --git a/MuseV/MMCM/mmcm/t2p/utils/quaternion.py b/MuseV/MMCM/mmcm/t2p/utils/quaternion.py
new file mode 100755
index 0000000000000000000000000000000000000000..e2daa00aef1df60e43775864d1dd3d551f89ded8
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/utils/quaternion.py
@@ -0,0 +1,423 @@
+# Copyright (c) 2018-present, Facebook, Inc.
+# 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 numpy as np
+
+_EPS4 = np.finfo(float).eps * 4.0
+
+_FLOAT_EPS = np.finfo(np.float).eps
+
+# PyTorch-backed implementations
+def qinv(q):
+ assert q.shape[-1] == 4, 'q must be a tensor of shape (*, 4)'
+ mask = torch.ones_like(q)
+ mask[..., 1:] = -mask[..., 1:]
+ return q * mask
+
+
+def qinv_np(q):
+ assert q.shape[-1] == 4, 'q must be a tensor of shape (*, 4)'
+ return qinv(torch.from_numpy(q).float()).numpy()
+
+
+def qnormalize(q):
+ assert q.shape[-1] == 4, 'q must be a tensor of shape (*, 4)'
+ return q / torch.norm(q, dim=-1, keepdim=True)
+
+
+def qmul(q, r):
+ """
+ Multiply quaternion(s) q with quaternion(s) r.
+ Expects two equally-sized tensors of shape (*, 4), where * denotes any number of dimensions.
+ Returns q*r as a tensor of shape (*, 4).
+ """
+ assert q.shape[-1] == 4
+ assert r.shape[-1] == 4
+
+ original_shape = q.shape
+
+ # Compute outer product
+ terms = torch.bmm(r.view(-1, 4, 1), q.view(-1, 1, 4))
+
+ w = terms[:, 0, 0] - terms[:, 1, 1] - terms[:, 2, 2] - terms[:, 3, 3]
+ x = terms[:, 0, 1] + terms[:, 1, 0] - terms[:, 2, 3] + terms[:, 3, 2]
+ y = terms[:, 0, 2] + terms[:, 1, 3] + terms[:, 2, 0] - terms[:, 3, 1]
+ z = terms[:, 0, 3] - terms[:, 1, 2] + terms[:, 2, 1] + terms[:, 3, 0]
+ return torch.stack((w, x, y, z), dim=1).view(original_shape)
+
+
+def qrot(q, v):
+ """
+ Rotate vector(s) v about the rotation described by quaternion(s) q.
+ Expects a tensor of shape (*, 4) for q and a tensor of shape (*, 3) for v,
+ where * denotes any number of dimensions.
+ Returns a tensor of shape (*, 3).
+ """
+ assert q.shape[-1] == 4
+ assert v.shape[-1] == 3
+ assert q.shape[:-1] == v.shape[:-1]
+
+ original_shape = list(v.shape)
+ # print(q.shape)
+ q = q.contiguous().view(-1, 4)
+ v = v.contiguous().view(-1, 3)
+
+ qvec = q[:, 1:]
+ uv = torch.cross(qvec, v, dim=1)
+ uuv = torch.cross(qvec, uv, dim=1)
+ return (v + 2 * (q[:, :1] * uv + uuv)).view(original_shape)
+
+
+def qeuler(q, order, epsilon=0, deg=True):
+ """
+ Convert quaternion(s) q to Euler angles.
+ Expects a tensor of shape (*, 4), where * denotes any number of dimensions.
+ Returns a tensor of shape (*, 3).
+ """
+ assert q.shape[-1] == 4
+
+ original_shape = list(q.shape)
+ original_shape[-1] = 3
+ q = q.view(-1, 4)
+
+ q0 = q[:, 0]
+ q1 = q[:, 1]
+ q2 = q[:, 2]
+ q3 = q[:, 3]
+
+ if order == 'xyz':
+ x = torch.atan2(2 * (q0 * q1 - q2 * q3), 1 - 2 * (q1 * q1 + q2 * q2))
+ y = torch.asin(torch.clamp(2 * (q1 * q3 + q0 * q2), -1 + epsilon, 1 - epsilon))
+ z = torch.atan2(2 * (q0 * q3 - q1 * q2), 1 - 2 * (q2 * q2 + q3 * q3))
+ elif order == 'yzx':
+ x = torch.atan2(2 * (q0 * q1 - q2 * q3), 1 - 2 * (q1 * q1 + q3 * q3))
+ y = torch.atan2(2 * (q0 * q2 - q1 * q3), 1 - 2 * (q2 * q2 + q3 * q3))
+ z = torch.asin(torch.clamp(2 * (q1 * q2 + q0 * q3), -1 + epsilon, 1 - epsilon))
+ elif order == 'zxy':
+ x = torch.asin(torch.clamp(2 * (q0 * q1 + q2 * q3), -1 + epsilon, 1 - epsilon))
+ y = torch.atan2(2 * (q0 * q2 - q1 * q3), 1 - 2 * (q1 * q1 + q2 * q2))
+ z = torch.atan2(2 * (q0 * q3 - q1 * q2), 1 - 2 * (q1 * q1 + q3 * q3))
+ elif order == 'xzy':
+ x = torch.atan2(2 * (q0 * q1 + q2 * q3), 1 - 2 * (q1 * q1 + q3 * q3))
+ y = torch.atan2(2 * (q0 * q2 + q1 * q3), 1 - 2 * (q2 * q2 + q3 * q3))
+ z = torch.asin(torch.clamp(2 * (q0 * q3 - q1 * q2), -1 + epsilon, 1 - epsilon))
+ elif order == 'yxz':
+ x = torch.asin(torch.clamp(2 * (q0 * q1 - q2 * q3), -1 + epsilon, 1 - epsilon))
+ y = torch.atan2(2 * (q1 * q3 + q0 * q2), 1 - 2 * (q1 * q1 + q2 * q2))
+ z = torch.atan2(2 * (q1 * q2 + q0 * q3), 1 - 2 * (q1 * q1 + q3 * q3))
+ elif order == 'zyx':
+ x = torch.atan2(2 * (q0 * q1 + q2 * q3), 1 - 2 * (q1 * q1 + q2 * q2))
+ y = torch.asin(torch.clamp(2 * (q0 * q2 - q1 * q3), -1 + epsilon, 1 - epsilon))
+ z = torch.atan2(2 * (q0 * q3 + q1 * q2), 1 - 2 * (q2 * q2 + q3 * q3))
+ else:
+ raise
+
+ if deg:
+ return torch.stack((x, y, z), dim=1).view(original_shape) * 180 / np.pi
+ else:
+ return torch.stack((x, y, z), dim=1).view(original_shape)
+
+
+# Numpy-backed implementations
+
+def qmul_np(q, r):
+ q = torch.from_numpy(q).contiguous().float()
+ r = torch.from_numpy(r).contiguous().float()
+ return qmul(q, r).numpy()
+
+
+def qrot_np(q, v):
+ q = torch.from_numpy(q).contiguous().float()
+ v = torch.from_numpy(v).contiguous().float()
+ return qrot(q, v).numpy()
+
+
+def qeuler_np(q, order, epsilon=0, use_gpu=False):
+ if use_gpu:
+ q = torch.from_numpy(q).cuda().float()
+ return qeuler(q, order, epsilon).cpu().numpy()
+ else:
+ q = torch.from_numpy(q).contiguous().float()
+ return qeuler(q, order, epsilon).numpy()
+
+
+def qfix(q):
+ """
+ Enforce quaternion continuity across the time dimension by selecting
+ the representation (q or -q) with minimal distance (or, equivalently, maximal dot product)
+ between two consecutive frames.
+
+ Expects a tensor of shape (L, J, 4), where L is the sequence length and J is the number of joints.
+ Returns a tensor of the same shape.
+ """
+ assert len(q.shape) == 3
+ assert q.shape[-1] == 4
+
+ result = q.copy()
+ dot_products = np.sum(q[1:] * q[:-1], axis=2)
+ mask = dot_products < 0
+ mask = (np.cumsum(mask, axis=0) % 2).astype(bool)
+ result[1:][mask] *= -1
+ return result
+
+
+def euler2quat(e, order, deg=True):
+ """
+ Convert Euler angles to quaternions.
+ """
+ assert e.shape[-1] == 3
+
+ original_shape = list(e.shape)
+ original_shape[-1] = 4
+
+ e = e.view(-1, 3)
+
+ ## if euler angles in degrees
+ if deg:
+ e = e * np.pi / 180.
+
+ x = e[:, 0]
+ y = e[:, 1]
+ z = e[:, 2]
+
+ rx = torch.stack((torch.cos(x / 2), torch.sin(x / 2), torch.zeros_like(x), torch.zeros_like(x)), dim=1)
+ ry = torch.stack((torch.cos(y / 2), torch.zeros_like(y), torch.sin(y / 2), torch.zeros_like(y)), dim=1)
+ rz = torch.stack((torch.cos(z / 2), torch.zeros_like(z), torch.zeros_like(z), torch.sin(z / 2)), dim=1)
+
+ result = None
+ for coord in order:
+ if coord == 'x':
+ r = rx
+ elif coord == 'y':
+ r = ry
+ elif coord == 'z':
+ r = rz
+ else:
+ raise
+ if result is None:
+ result = r
+ else:
+ result = qmul(result, r)
+
+ # Reverse antipodal representation to have a non-negative "w"
+ if order in ['xyz', 'yzx', 'zxy']:
+ result *= -1
+
+ return result.view(original_shape)
+
+
+def expmap_to_quaternion(e):
+ """
+ Convert axis-angle rotations (aka exponential maps) to quaternions.
+ Stable formula from "Practical Parameterization of Rotations Using the Exponential Map".
+ Expects a tensor of shape (*, 3), where * denotes any number of dimensions.
+ Returns a tensor of shape (*, 4).
+ """
+ assert e.shape[-1] == 3
+
+ original_shape = list(e.shape)
+ original_shape[-1] = 4
+ e = e.reshape(-1, 3)
+
+ theta = np.linalg.norm(e, axis=1).reshape(-1, 1)
+ w = np.cos(0.5 * theta).reshape(-1, 1)
+ xyz = 0.5 * np.sinc(0.5 * theta / np.pi) * e
+ return np.concatenate((w, xyz), axis=1).reshape(original_shape)
+
+
+def euler_to_quaternion(e, order):
+ """
+ Convert Euler angles to quaternions.
+ """
+ assert e.shape[-1] == 3
+
+ original_shape = list(e.shape)
+ original_shape[-1] = 4
+
+ e = e.reshape(-1, 3)
+
+ x = e[:, 0]
+ y = e[:, 1]
+ z = e[:, 2]
+
+ rx = np.stack((np.cos(x / 2), np.sin(x / 2), np.zeros_like(x), np.zeros_like(x)), axis=1)
+ ry = np.stack((np.cos(y / 2), np.zeros_like(y), np.sin(y / 2), np.zeros_like(y)), axis=1)
+ rz = np.stack((np.cos(z / 2), np.zeros_like(z), np.zeros_like(z), np.sin(z / 2)), axis=1)
+
+ result = None
+ for coord in order:
+ if coord == 'x':
+ r = rx
+ elif coord == 'y':
+ r = ry
+ elif coord == 'z':
+ r = rz
+ else:
+ raise
+ if result is None:
+ result = r
+ else:
+ result = qmul_np(result, r)
+
+ # Reverse antipodal representation to have a non-negative "w"
+ if order in ['xyz', 'yzx', 'zxy']:
+ result *= -1
+
+ return result.reshape(original_shape)
+
+
+def quaternion_to_matrix(quaternions):
+ """
+ Convert rotations given as quaternions to rotation matrices.
+ Args:
+ quaternions: quaternions with real part first,
+ as tensor of shape (..., 4).
+ Returns:
+ Rotation matrices as tensor of shape (..., 3, 3).
+ """
+ r, i, j, k = torch.unbind(quaternions, -1)
+ two_s = 2.0 / (quaternions * quaternions).sum(-1)
+
+ o = torch.stack(
+ (
+ 1 - two_s * (j * j + k * k),
+ two_s * (i * j - k * r),
+ two_s * (i * k + j * r),
+ two_s * (i * j + k * r),
+ 1 - two_s * (i * i + k * k),
+ two_s * (j * k - i * r),
+ two_s * (i * k - j * r),
+ two_s * (j * k + i * r),
+ 1 - two_s * (i * i + j * j),
+ ),
+ -1,
+ )
+ return o.reshape(quaternions.shape[:-1] + (3, 3))
+
+
+def quaternion_to_matrix_np(quaternions):
+ q = torch.from_numpy(quaternions).contiguous().float()
+ return quaternion_to_matrix(q).numpy()
+
+
+def quaternion_to_cont6d_np(quaternions):
+ rotation_mat = quaternion_to_matrix_np(quaternions)
+ cont_6d = np.concatenate([rotation_mat[..., 0], rotation_mat[..., 1]], axis=-1)
+ return cont_6d
+
+
+def quaternion_to_cont6d(quaternions):
+ rotation_mat = quaternion_to_matrix(quaternions)
+ cont_6d = torch.cat([rotation_mat[..., 0], rotation_mat[..., 1]], dim=-1)
+ return cont_6d
+
+
+def cont6d_to_matrix(cont6d):
+ assert cont6d.shape[-1] == 6, "The last dimension must be 6"
+ x_raw = cont6d[..., 0:3]
+ y_raw = cont6d[..., 3:6]
+
+ x = x_raw / torch.norm(x_raw, dim=-1, keepdim=True)
+ z = torch.cross(x, y_raw, dim=-1)
+ z = z / torch.norm(z, dim=-1, keepdim=True)
+
+ y = torch.cross(z, x, dim=-1)
+
+ x = x[..., None]
+ y = y[..., None]
+ z = z[..., None]
+
+ mat = torch.cat([x, y, z], dim=-1)
+ return mat
+
+
+def cont6d_to_matrix_np(cont6d):
+ q = torch.from_numpy(cont6d).contiguous().float()
+ return cont6d_to_matrix(q).numpy()
+
+
+def qpow(q0, t, dtype=torch.float):
+ ''' q0 : tensor of quaternions
+ t: tensor of powers
+ '''
+ q0 = qnormalize(q0)
+ theta0 = torch.acos(q0[..., 0])
+
+ ## if theta0 is close to zero, add epsilon to avoid NaNs
+ mask = (theta0 <= 10e-10) * (theta0 >= -10e-10)
+ theta0 = (1 - mask) * theta0 + mask * 10e-10
+ v0 = q0[..., 1:] / torch.sin(theta0).view(-1, 1)
+
+ if isinstance(t, torch.Tensor):
+ q = torch.zeros(t.shape + q0.shape)
+ theta = t.view(-1, 1) * theta0.view(1, -1)
+ else: ## if t is a number
+ q = torch.zeros(q0.shape)
+ theta = t * theta0
+
+ q[..., 0] = torch.cos(theta)
+ q[..., 1:] = v0 * torch.sin(theta).unsqueeze(-1)
+
+ return q.to(dtype)
+
+
+def qslerp(q0, q1, t):
+ '''
+ q0: starting quaternion
+ q1: ending quaternion
+ t: array of points along the way
+
+ Returns:
+ Tensor of Slerps: t.shape + q0.shape
+ '''
+
+ q0 = qnormalize(q0)
+ q1 = qnormalize(q1)
+ q_ = qpow(qmul(q1, qinv(q0)), t)
+
+ return qmul(q_,
+ q0.contiguous().view(torch.Size([1] * len(t.shape)) + q0.shape).expand(t.shape + q0.shape).contiguous())
+
+
+def qbetween(v0, v1):
+ '''
+ find the quaternion used to rotate v0 to v1
+ '''
+ assert v0.shape[-1] == 3, 'v0 must be of the shape (*, 3)'
+ assert v1.shape[-1] == 3, 'v1 must be of the shape (*, 3)'
+
+ v = torch.cross(v0, v1)
+ w = torch.sqrt((v0 ** 2).sum(dim=-1, keepdim=True) * (v1 ** 2).sum(dim=-1, keepdim=True)) + (v0 * v1).sum(dim=-1,
+ keepdim=True)
+ return qnormalize(torch.cat([w, v], dim=-1))
+
+
+def qbetween_np(v0, v1):
+ '''
+ find the quaternion used to rotate v0 to v1
+ '''
+ assert v0.shape[-1] == 3, 'v0 must be of the shape (*, 3)'
+ assert v1.shape[-1] == 3, 'v1 must be of the shape (*, 3)'
+
+ v0 = torch.from_numpy(v0).float()
+ v1 = torch.from_numpy(v1).float()
+ return qbetween(v0, v1).numpy()
+
+
+def lerp(p0, p1, t):
+ if not isinstance(t, torch.Tensor):
+ t = torch.Tensor([t])
+
+ new_shape = t.shape + p0.shape
+ new_view_t = t.shape + torch.Size([1] * len(p0.shape))
+ new_view_p = torch.Size([1] * len(t.shape)) + p0.shape
+ p0 = p0.view(new_view_p).expand(new_shape)
+ p1 = p1.view(new_view_p).expand(new_shape)
+ t = t.view(new_view_t).expand(new_shape)
+
+ return p0 + t * (p1 - p0)
diff --git a/MuseV/MMCM/mmcm/t2p/utils/rotation_conversions.py b/MuseV/MMCM/mmcm/t2p/utils/rotation_conversions.py
new file mode 100755
index 0000000000000000000000000000000000000000..1006e8a3117b231a7a456d5b826e76347fe0bfd4
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/utils/rotation_conversions.py
@@ -0,0 +1,532 @@
+# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
+# Check PYTORCH3D_LICENCE before use
+
+import functools
+from typing import Optional
+
+import torch
+import torch.nn.functional as F
+
+
+"""
+The transformation matrices returned from the functions in this file assume
+the points on which the transformation will be applied are column vectors.
+i.e. the R matrix is structured as
+ R = [
+ [Rxx, Rxy, Rxz],
+ [Ryx, Ryy, Ryz],
+ [Rzx, Rzy, Rzz],
+ ] # (3, 3)
+This matrix can be applied to column vectors by post multiplication
+by the points e.g.
+ points = [[0], [1], [2]] # (3 x 1) xyz coordinates of a point
+ transformed_points = R * points
+To apply the same matrix to points which are row vectors, the R matrix
+can be transposed and pre multiplied by the points:
+e.g.
+ points = [[0, 1, 2]] # (1 x 3) xyz coordinates of a point
+ transformed_points = points * R.transpose(1, 0)
+"""
+
+
+def quaternion_to_matrix(quaternions):
+ """
+ Convert rotations given as quaternions to rotation matrices.
+ Args:
+ quaternions: quaternions with real part first,
+ as tensor of shape (..., 4).
+ Returns:
+ Rotation matrices as tensor of shape (..., 3, 3).
+ """
+ r, i, j, k = torch.unbind(quaternions, -1)
+ two_s = 2.0 / (quaternions * quaternions).sum(-1)
+
+ o = torch.stack(
+ (
+ 1 - two_s * (j * j + k * k),
+ two_s * (i * j - k * r),
+ two_s * (i * k + j * r),
+ two_s * (i * j + k * r),
+ 1 - two_s * (i * i + k * k),
+ two_s * (j * k - i * r),
+ two_s * (i * k - j * r),
+ two_s * (j * k + i * r),
+ 1 - two_s * (i * i + j * j),
+ ),
+ -1,
+ )
+ return o.reshape(quaternions.shape[:-1] + (3, 3))
+
+
+def _copysign(a, b):
+ """
+ Return a tensor where each element has the absolute value taken from the,
+ corresponding element of a, with sign taken from the corresponding
+ element of b. This is like the standard copysign floating-point operation,
+ but is not careful about negative 0 and NaN.
+ Args:
+ a: source tensor.
+ b: tensor whose signs will be used, of the same shape as a.
+ Returns:
+ Tensor of the same shape as a with the signs of b.
+ """
+ signs_differ = (a < 0) != (b < 0)
+ return torch.where(signs_differ, -a, a)
+
+
+def _sqrt_positive_part(x):
+ """
+ Returns torch.sqrt(torch.max(0, x))
+ but with a zero subgradient where x is 0.
+ """
+ ret = torch.zeros_like(x)
+ positive_mask = x > 0
+ ret[positive_mask] = torch.sqrt(x[positive_mask])
+ return ret
+
+
+def matrix_to_quaternion(matrix):
+ """
+ Convert rotations given as rotation matrices to quaternions.
+ Args:
+ matrix: Rotation matrices as tensor of shape (..., 3, 3).
+ Returns:
+ quaternions with real part first, as tensor of shape (..., 4).
+ """
+ if matrix.size(-1) != 3 or matrix.size(-2) != 3:
+ raise ValueError(f"Invalid rotation matrix shape f{matrix.shape}.")
+ m00 = matrix[..., 0, 0]
+ m11 = matrix[..., 1, 1]
+ m22 = matrix[..., 2, 2]
+ o0 = 0.5 * _sqrt_positive_part(1 + m00 + m11 + m22)
+ x = 0.5 * _sqrt_positive_part(1 + m00 - m11 - m22)
+ y = 0.5 * _sqrt_positive_part(1 - m00 + m11 - m22)
+ z = 0.5 * _sqrt_positive_part(1 - m00 - m11 + m22)
+ o1 = _copysign(x, matrix[..., 2, 1] - matrix[..., 1, 2])
+ o2 = _copysign(y, matrix[..., 0, 2] - matrix[..., 2, 0])
+ o3 = _copysign(z, matrix[..., 1, 0] - matrix[..., 0, 1])
+ return torch.stack((o0, o1, o2, o3), -1)
+
+
+def _axis_angle_rotation(axis: str, angle):
+ """
+ Return the rotation matrices for one of the rotations about an axis
+ of which Euler angles describe, for each value of the angle given.
+ Args:
+ axis: Axis label "X" or "Y or "Z".
+ angle: any shape tensor of Euler angles in radians
+ Returns:
+ Rotation matrices as tensor of shape (..., 3, 3).
+ """
+
+ cos = torch.cos(angle)
+ sin = torch.sin(angle)
+ one = torch.ones_like(angle)
+ zero = torch.zeros_like(angle)
+
+ if axis == "X":
+ R_flat = (one, zero, zero, zero, cos, -sin, zero, sin, cos)
+ if axis == "Y":
+ R_flat = (cos, zero, sin, zero, one, zero, -sin, zero, cos)
+ if axis == "Z":
+ R_flat = (cos, -sin, zero, sin, cos, zero, zero, zero, one)
+
+ return torch.stack(R_flat, -1).reshape(angle.shape + (3, 3))
+
+
+def euler_angles_to_matrix(euler_angles, convention: str):
+ """
+ Convert rotations given as Euler angles in radians to rotation matrices.
+ Args:
+ euler_angles: Euler angles in radians as tensor of shape (..., 3).
+ convention: Convention string of three uppercase letters from
+ {"X", "Y", and "Z"}.
+ Returns:
+ Rotation matrices as tensor of shape (..., 3, 3).
+ """
+ if euler_angles.dim() == 0 or euler_angles.shape[-1] != 3:
+ raise ValueError("Invalid input euler angles.")
+ if len(convention) != 3:
+ raise ValueError("Convention must have 3 letters.")
+ if convention[1] in (convention[0], convention[2]):
+ raise ValueError(f"Invalid convention {convention}.")
+ for letter in convention:
+ if letter not in ("X", "Y", "Z"):
+ raise ValueError(f"Invalid letter {letter} in convention string.")
+ matrices = map(_axis_angle_rotation, convention, torch.unbind(euler_angles, -1))
+ return functools.reduce(torch.matmul, matrices)
+
+
+def _angle_from_tan(
+ axis: str, other_axis: str, data, horizontal: bool, tait_bryan: bool
+):
+ """
+ Extract the first or third Euler angle from the two members of
+ the matrix which are positive constant times its sine and cosine.
+ Args:
+ axis: Axis label "X" or "Y or "Z" for the angle we are finding.
+ other_axis: Axis label "X" or "Y or "Z" for the middle axis in the
+ convention.
+ data: Rotation matrices as tensor of shape (..., 3, 3).
+ horizontal: Whether we are looking for the angle for the third axis,
+ which means the relevant entries are in the same row of the
+ rotation matrix. If not, they are in the same column.
+ tait_bryan: Whether the first and third axes in the convention differ.
+ Returns:
+ Euler Angles in radians for each matrix in data as a tensor
+ of shape (...).
+ """
+
+ i1, i2 = {"X": (2, 1), "Y": (0, 2), "Z": (1, 0)}[axis]
+ if horizontal:
+ i2, i1 = i1, i2
+ even = (axis + other_axis) in ["XY", "YZ", "ZX"]
+ if horizontal == even:
+ return torch.atan2(data[..., i1], data[..., i2])
+ if tait_bryan:
+ return torch.atan2(-data[..., i2], data[..., i1])
+ return torch.atan2(data[..., i2], -data[..., i1])
+
+
+def _index_from_letter(letter: str):
+ if letter == "X":
+ return 0
+ if letter == "Y":
+ return 1
+ if letter == "Z":
+ return 2
+
+
+def matrix_to_euler_angles(matrix, convention: str):
+ """
+ Convert rotations given as rotation matrices to Euler angles in radians.
+ Args:
+ matrix: Rotation matrices as tensor of shape (..., 3, 3).
+ convention: Convention string of three uppercase letters.
+ Returns:
+ Euler angles in radians as tensor of shape (..., 3).
+ """
+ if len(convention) != 3:
+ raise ValueError("Convention must have 3 letters.")
+ if convention[1] in (convention[0], convention[2]):
+ raise ValueError(f"Invalid convention {convention}.")
+ for letter in convention:
+ if letter not in ("X", "Y", "Z"):
+ raise ValueError(f"Invalid letter {letter} in convention string.")
+ if matrix.size(-1) != 3 or matrix.size(-2) != 3:
+ raise ValueError(f"Invalid rotation matrix shape f{matrix.shape}.")
+ i0 = _index_from_letter(convention[0])
+ i2 = _index_from_letter(convention[2])
+ tait_bryan = i0 != i2
+ if tait_bryan:
+ central_angle = torch.asin(
+ matrix[..., i0, i2] * (-1.0 if i0 - i2 in [-1, 2] else 1.0)
+ )
+ else:
+ central_angle = torch.acos(matrix[..., i0, i0])
+
+ o = (
+ _angle_from_tan(
+ convention[0], convention[1], matrix[..., i2], False, tait_bryan
+ ),
+ central_angle,
+ _angle_from_tan(
+ convention[2], convention[1], matrix[..., i0, :], True, tait_bryan
+ ),
+ )
+ return torch.stack(o, -1)
+
+
+def random_quaternions(
+ n: int, dtype: Optional[torch.dtype] = None, device=None, requires_grad=False
+):
+ """
+ Generate random quaternions representing rotations,
+ i.e. versors with nonnegative real part.
+ Args:
+ n: Number of quaternions in a batch to return.
+ dtype: Type to return.
+ device: Desired device of returned tensor. Default:
+ uses the current device for the default tensor type.
+ requires_grad: Whether the resulting tensor should have the gradient
+ flag set.
+ Returns:
+ Quaternions as tensor of shape (N, 4).
+ """
+ o = torch.randn((n, 4), dtype=dtype, device=device, requires_grad=requires_grad)
+ s = (o * o).sum(1)
+ o = o / _copysign(torch.sqrt(s), o[:, 0])[:, None]
+ return o
+
+
+def random_rotations(
+ n: int, dtype: Optional[torch.dtype] = None, device=None, requires_grad=False
+):
+ """
+ Generate random rotations as 3x3 rotation matrices.
+ Args:
+ n: Number of rotation matrices in a batch to return.
+ dtype: Type to return.
+ device: Device of returned tensor. Default: if None,
+ uses the current device for the default tensor type.
+ requires_grad: Whether the resulting tensor should have the gradient
+ flag set.
+ Returns:
+ Rotation matrices as tensor of shape (n, 3, 3).
+ """
+ quaternions = random_quaternions(
+ n, dtype=dtype, device=device, requires_grad=requires_grad
+ )
+ return quaternion_to_matrix(quaternions)
+
+
+def random_rotation(
+ dtype: Optional[torch.dtype] = None, device=None, requires_grad=False
+):
+ """
+ Generate a single random 3x3 rotation matrix.
+ Args:
+ dtype: Type to return
+ device: Device of returned tensor. Default: if None,
+ uses the current device for the default tensor type
+ requires_grad: Whether the resulting tensor should have the gradient
+ flag set
+ Returns:
+ Rotation matrix as tensor of shape (3, 3).
+ """
+ return random_rotations(1, dtype, device, requires_grad)[0]
+
+
+def standardize_quaternion(quaternions):
+ """
+ Convert a unit quaternion to a standard form: one in which the real
+ part is non negative.
+ Args:
+ quaternions: Quaternions with real part first,
+ as tensor of shape (..., 4).
+ Returns:
+ Standardized quaternions as tensor of shape (..., 4).
+ """
+ return torch.where(quaternions[..., 0:1] < 0, -quaternions, quaternions)
+
+
+def quaternion_raw_multiply(a, b):
+ """
+ Multiply two quaternions.
+ Usual torch rules for broadcasting apply.
+ Args:
+ a: Quaternions as tensor of shape (..., 4), real part first.
+ b: Quaternions as tensor of shape (..., 4), real part first.
+ Returns:
+ The product of a and b, a tensor of quaternions shape (..., 4).
+ """
+ aw, ax, ay, az = torch.unbind(a, -1)
+ bw, bx, by, bz = torch.unbind(b, -1)
+ ow = aw * bw - ax * bx - ay * by - az * bz
+ ox = aw * bx + ax * bw + ay * bz - az * by
+ oy = aw * by - ax * bz + ay * bw + az * bx
+ oz = aw * bz + ax * by - ay * bx + az * bw
+ return torch.stack((ow, ox, oy, oz), -1)
+
+
+def quaternion_multiply(a, b):
+ """
+ Multiply two quaternions representing rotations, returning the quaternion
+ representing their composition, i.e. the versor with nonnegative real part.
+ Usual torch rules for broadcasting apply.
+ Args:
+ a: Quaternions as tensor of shape (..., 4), real part first.
+ b: Quaternions as tensor of shape (..., 4), real part first.
+ Returns:
+ The product of a and b, a tensor of quaternions of shape (..., 4).
+ """
+ ab = quaternion_raw_multiply(a, b)
+ return standardize_quaternion(ab)
+
+
+def quaternion_invert(quaternion):
+ """
+ Given a quaternion representing rotation, get the quaternion representing
+ its inverse.
+ Args:
+ quaternion: Quaternions as tensor of shape (..., 4), with real part
+ first, which must be versors (unit quaternions).
+ Returns:
+ The inverse, a tensor of quaternions of shape (..., 4).
+ """
+
+ return quaternion * quaternion.new_tensor([1, -1, -1, -1])
+
+
+def quaternion_apply(quaternion, point):
+ """
+ Apply the rotation given by a quaternion to a 3D point.
+ Usual torch rules for broadcasting apply.
+ Args:
+ quaternion: Tensor of quaternions, real part first, of shape (..., 4).
+ point: Tensor of 3D points of shape (..., 3).
+ Returns:
+ Tensor of rotated points of shape (..., 3).
+ """
+ if point.size(-1) != 3:
+ raise ValueError(f"Points are not in 3D, f{point.shape}.")
+ real_parts = point.new_zeros(point.shape[:-1] + (1,))
+ point_as_quaternion = torch.cat((real_parts, point), -1)
+ out = quaternion_raw_multiply(
+ quaternion_raw_multiply(quaternion, point_as_quaternion),
+ quaternion_invert(quaternion),
+ )
+ return out[..., 1:]
+
+
+def axis_angle_to_matrix(axis_angle):
+ """
+ Convert rotations given as axis/angle to rotation matrices.
+ Args:
+ axis_angle: Rotations given as a vector in axis angle form,
+ as a tensor of shape (..., 3), where the magnitude is
+ the angle turned anticlockwise in radians around the
+ vector's direction.
+ Returns:
+ Rotation matrices as tensor of shape (..., 3, 3).
+ """
+ return quaternion_to_matrix(axis_angle_to_quaternion(axis_angle))
+
+
+def matrix_to_axis_angle(matrix):
+ """
+ Convert rotations given as rotation matrices to axis/angle.
+ Args:
+ matrix: Rotation matrices as tensor of shape (..., 3, 3).
+ Returns:
+ Rotations given as a vector in axis angle form, as a tensor
+ of shape (..., 3), where the magnitude is the angle
+ turned anticlockwise in radians around the vector's
+ direction.
+ """
+ return quaternion_to_axis_angle(matrix_to_quaternion(matrix))
+
+
+def axis_angle_to_quaternion(axis_angle):
+ """
+ Convert rotations given as axis/angle to quaternions.
+ Args:
+ axis_angle: Rotations given as a vector in axis angle form,
+ as a tensor of shape (..., 3), where the magnitude is
+ the angle turned anticlockwise in radians around the
+ vector's direction.
+ Returns:
+ quaternions with real part first, as tensor of shape (..., 4).
+ """
+ angles = torch.norm(axis_angle, p=2, dim=-1, keepdim=True)
+ half_angles = 0.5 * angles
+ eps = 1e-6
+ small_angles = angles.abs() < eps
+ sin_half_angles_over_angles = torch.empty_like(angles)
+ sin_half_angles_over_angles[~small_angles] = (
+ torch.sin(half_angles[~small_angles]) / angles[~small_angles]
+ )
+ # for x small, sin(x/2) is about x/2 - (x/2)^3/6
+ # so sin(x/2)/x is about 1/2 - (x*x)/48
+ sin_half_angles_over_angles[small_angles] = (
+ 0.5 - (angles[small_angles] * angles[small_angles]) / 48
+ )
+ quaternions = torch.cat(
+ [torch.cos(half_angles), axis_angle * sin_half_angles_over_angles], dim=-1
+ )
+ return quaternions
+
+
+def quaternion_to_axis_angle(quaternions):
+ """
+ Convert rotations given as quaternions to axis/angle.
+ Args:
+ quaternions: quaternions with real part first,
+ as tensor of shape (..., 4).
+ Returns:
+ Rotations given as a vector in axis angle form, as a tensor
+ of shape (..., 3), where the magnitude is the angle
+ turned anticlockwise in radians around the vector's
+ direction.
+ """
+ norms = torch.norm(quaternions[..., 1:], p=2, dim=-1, keepdim=True)
+ half_angles = torch.atan2(norms, quaternions[..., :1])
+ angles = 2 * half_angles
+ eps = 1e-6
+ small_angles = angles.abs() < eps
+ sin_half_angles_over_angles = torch.empty_like(angles)
+ sin_half_angles_over_angles[~small_angles] = (
+ torch.sin(half_angles[~small_angles]) / angles[~small_angles]
+ )
+ # for x small, sin(x/2) is about x/2 - (x/2)^3/6
+ # so sin(x/2)/x is about 1/2 - (x*x)/48
+ sin_half_angles_over_angles[small_angles] = (
+ 0.5 - (angles[small_angles] * angles[small_angles]) / 48
+ )
+ return quaternions[..., 1:] / sin_half_angles_over_angles
+
+
+def rotation_6d_to_matrix(d6: torch.Tensor) -> torch.Tensor:
+ """
+ Converts 6D rotation representation by Zhou et al. [1] to rotation matrix
+ using Gram--Schmidt orthogonalisation per Section B of [1].
+ Args:
+ d6: 6D rotation representation, of size (*, 6)
+ Returns:
+ batch of rotation matrices of size (*, 3, 3)
+ [1] Zhou, Y., Barnes, C., Lu, J., Yang, J., & Li, H.
+ On the Continuity of Rotation Representations in Neural Networks.
+ IEEE Conference on Computer Vision and Pattern Recognition, 2019.
+ Retrieved from http://arxiv.org/abs/1812.07035
+ """
+
+ a1, a2 = d6[..., :3], d6[..., 3:]
+ b1 = F.normalize(a1, dim=-1)
+ b2 = a2 - (b1 * a2).sum(-1, keepdim=True) * b1
+ b2 = F.normalize(b2, dim=-1)
+ b3 = torch.cross(b1, b2, dim=-1)
+ return torch.stack((b1, b2, b3), dim=-2)
+
+
+def matrix_to_rotation_6d(matrix: torch.Tensor) -> torch.Tensor:
+ """
+ Converts rotation matrices to 6D rotation representation by Zhou et al. [1]
+ by dropping the last row. Note that 6D representation is not unique.
+ Args:
+ matrix: batch of rotation matrices of size (*, 3, 3)
+ Returns:
+ 6D rotation representation, of size (*, 6)
+ [1] Zhou, Y., Barnes, C., Lu, J., Yang, J., & Li, H.
+ On the Continuity of Rotation Representations in Neural Networks.
+ IEEE Conference on Computer Vision and Pattern Recognition, 2019.
+ Retrieved from http://arxiv.org/abs/1812.07035
+ """
+ return matrix[..., :2, :].clone().reshape(*matrix.size()[:-2], 6)
+
+def canonicalize_smplh(poses, trans = None):
+ bs, nframes, njoints = poses.shape[:3]
+
+ global_orient = poses[:, :, 0]
+
+ # first global rotations
+ rot2d = matrix_to_axis_angle(global_orient[:, 0])
+ #rot2d[:, :2] = 0 # Remove the rotation along the vertical axis
+ rot2d = axis_angle_to_matrix(rot2d)
+
+ # Rotate the global rotation to eliminate Z rotations
+ global_orient = torch.einsum("ikj,imkl->imjl", rot2d, global_orient)
+
+ # Construct canonicalized version of x
+ xc = torch.cat((global_orient[:, :, None], poses[:, :, 1:]), dim=2)
+
+ if trans is not None:
+ vel = trans[:, 1:] - trans[:, :-1]
+ # Turn the translation as well
+ vel = torch.einsum("ikj,ilk->ilj", rot2d, vel)
+ trans = torch.cat((torch.zeros(bs, 1, 3, device=vel.device),
+ torch.cumsum(vel, 1)), 1)
+ return xc, trans
+ else:
+ return xc
+
+
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/utils/skeleton.py b/MuseV/MMCM/mmcm/t2p/utils/skeleton.py
new file mode 100755
index 0000000000000000000000000000000000000000..b2ae85ad14df8c1a8d77e689b1cffbc6c814a979
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/utils/skeleton.py
@@ -0,0 +1,199 @@
+from .quaternion import *
+import scipy.ndimage.filters as filters
+
+class Skeleton(object):
+ def __init__(self, offset, kinematic_tree, device):
+ self.device = device
+ self._raw_offset_np = offset.numpy()
+ self._raw_offset = offset.clone().detach().to(device).float()
+ self._kinematic_tree = kinematic_tree
+ self._offset = None
+ self._parents = [0] * len(self._raw_offset)
+ self._parents[0] = -1
+ for chain in self._kinematic_tree:
+ for j in range(1, len(chain)):
+ self._parents[chain[j]] = chain[j-1]
+
+ def njoints(self):
+ return len(self._raw_offset)
+
+ def offset(self):
+ return self._offset
+
+ def set_offset(self, offsets):
+ self._offset = offsets.clone().detach().to(self.device).float()
+
+ def kinematic_tree(self):
+ return self._kinematic_tree
+
+ def parents(self):
+ return self._parents
+
+ # joints (batch_size, joints_num, 3)
+ def get_offsets_joints_batch(self, joints):
+ assert len(joints.shape) == 3
+ _offsets = self._raw_offset.expand(joints.shape[0], -1, -1).clone()
+ for i in range(1, self._raw_offset.shape[0]):
+ _offsets[:, i] = torch.norm(joints[:, i] - joints[:, self._parents[i]], p=2, dim=1)[:, None] * _offsets[:, i]
+
+ self._offset = _offsets.detach()
+ return _offsets
+
+ # joints (joints_num, 3)
+ def get_offsets_joints(self, joints):
+ assert len(joints.shape) == 2
+ _offsets = self._raw_offset.clone()
+ for i in range(1, self._raw_offset.shape[0]):
+ # print(joints.shape)
+ _offsets[i] = torch.norm(joints[i] - joints[self._parents[i]], p=2, dim=0) * _offsets[i]
+
+ self._offset = _offsets.detach()
+ return _offsets
+
+ # face_joint_idx should follow the order of right hip, left hip, right shoulder, left shoulder
+ # joints (batch_size, joints_num, 3)
+ def inverse_kinematics_np(self, joints, face_joint_idx, smooth_forward=False):
+ assert len(face_joint_idx) == 4
+ '''Get Forward Direction'''
+ l_hip, r_hip, sdr_r, sdr_l = face_joint_idx
+ across1 = joints[:, r_hip] - joints[:, l_hip]
+ across2 = joints[:, sdr_r] - joints[:, sdr_l]
+ across = across1 + across2
+ across = across / np.sqrt((across**2).sum(axis=-1))[:, np.newaxis]
+ # print(across1.shape, across2.shape)
+
+ # forward (batch_size, 3)
+ forward = np.cross(np.array([[0, 1, 0]]), across, axis=-1)
+ if smooth_forward:
+ forward = filters.gaussian_filter1d(forward, 20, axis=0, mode='nearest')
+ # forward (batch_size, 3)
+ forward = forward / np.sqrt((forward**2).sum(axis=-1))[..., np.newaxis]
+
+ '''Get Root Rotation'''
+ target = np.array([[0,0,1]]).repeat(len(forward), axis=0)
+ root_quat = qbetween_np(forward, target)
+
+ '''Inverse Kinematics'''
+ # quat_params (batch_size, joints_num, 4)
+ # print(joints.shape[:-1])
+ quat_params = np.zeros(joints.shape[:-1] + (4,))
+ # print(quat_params.shape)
+ root_quat[0] = np.array([[1.0, 0.0, 0.0, 0.0]])
+ quat_params[:, 0] = root_quat
+ # quat_params[0, 0] = np.array([[1.0, 0.0, 0.0, 0.0]])
+ for chain in self._kinematic_tree:
+ R = root_quat
+ for j in range(len(chain) - 1):
+ # (batch, 3)
+ u = self._raw_offset_np[chain[j+1]][np.newaxis,...].repeat(len(joints), axis=0)
+ # print(u.shape)
+ # (batch, 3)
+ v = joints[:, chain[j+1]] - joints[:, chain[j]]
+ v = v / np.sqrt((v**2).sum(axis=-1))[:, np.newaxis]
+ # print(u.shape, v.shape)
+ rot_u_v = qbetween_np(u, v)
+
+ R_loc = qmul_np(qinv_np(R), rot_u_v)
+
+ quat_params[:,chain[j + 1], :] = R_loc
+ R = qmul_np(R, R_loc)
+
+ return quat_params
+
+ # Be sure root joint is at the beginning of kinematic chains
+ def forward_kinematics(self, quat_params, root_pos, skel_joints=None, do_root_R=True):
+ # quat_params (batch_size, joints_num, 4)
+ # joints (batch_size, joints_num, 3)
+ # root_pos (batch_size, 3)
+ if skel_joints is not None:
+ offsets = self.get_offsets_joints_batch(skel_joints)
+ if len(self._offset.shape) == 2:
+ offsets = self._offset.expand(quat_params.shape[0], -1, -1)
+ joints = torch.zeros(quat_params.shape[:-1] + (3,)).to(self.device)
+ joints[:, 0] = root_pos
+ for chain in self._kinematic_tree:
+ if do_root_R:
+ R = quat_params[:, 0]
+ else:
+ R = torch.tensor([[1.0, 0.0, 0.0, 0.0]]).expand(len(quat_params), -1).detach().to(self.device)
+ for i in range(1, len(chain)):
+ R = qmul(R, quat_params[:, chain[i]])
+ offset_vec = offsets[:, chain[i]]
+ joints[:, chain[i]] = qrot(R, offset_vec) + joints[:, chain[i-1]]
+ return joints
+
+ # Be sure root joint is at the beginning of kinematic chains
+ def forward_kinematics_np(self, quat_params, root_pos, skel_joints=None, do_root_R=True):
+ # quat_params (batch_size, joints_num, 4)
+ # joints (batch_size, joints_num, 3)
+ # root_pos (batch_size, 3)
+ if skel_joints is not None:
+ skel_joints = torch.from_numpy(skel_joints)
+ offsets = self.get_offsets_joints_batch(skel_joints)
+ if len(self._offset.shape) == 2:
+ offsets = self._offset.expand(quat_params.shape[0], -1, -1)
+ offsets = offsets.numpy()
+ joints = np.zeros(quat_params.shape[:-1] + (3,))
+ joints[:, 0] = root_pos
+ for chain in self._kinematic_tree:
+ if do_root_R:
+ R = quat_params[:, 0]
+ else:
+ R = np.array([[1.0, 0.0, 0.0, 0.0]]).repeat(len(quat_params), axis=0)
+ for i in range(1, len(chain)):
+ R = qmul_np(R, quat_params[:, chain[i]])
+ offset_vec = offsets[:, chain[i]]
+ joints[:, chain[i]] = qrot_np(R, offset_vec) + joints[:, chain[i - 1]]
+ return joints
+
+ def forward_kinematics_cont6d_np(self, cont6d_params, root_pos, skel_joints=None, do_root_R=True):
+ # cont6d_params (batch_size, joints_num, 6)
+ # joints (batch_size, joints_num, 3)
+ # root_pos (batch_size, 3)
+ if skel_joints is not None:
+ skel_joints = torch.from_numpy(skel_joints)
+ offsets = self.get_offsets_joints_batch(skel_joints)
+ if len(self._offset.shape) == 2:
+ offsets = self._offset.expand(cont6d_params.shape[0], -1, -1)
+ offsets = offsets.numpy()
+ joints = np.zeros(cont6d_params.shape[:-1] + (3,))
+ joints[:, 0] = root_pos
+ for chain in self._kinematic_tree:
+ if do_root_R:
+ matR = cont6d_to_matrix_np(cont6d_params[:, 0])
+ else:
+ matR = np.eye(3)[np.newaxis, :].repeat(len(cont6d_params), axis=0)
+ for i in range(1, len(chain)):
+ matR = np.matmul(matR, cont6d_to_matrix_np(cont6d_params[:, chain[i]]))
+ offset_vec = offsets[:, chain[i]][..., np.newaxis]
+ # print(matR.shape, offset_vec.shape)
+ joints[:, chain[i]] = np.matmul(matR, offset_vec).squeeze(-1) + joints[:, chain[i-1]]
+ return joints
+
+ def forward_kinematics_cont6d(self, cont6d_params, root_pos, skel_joints=None, do_root_R=True):
+ # cont6d_params (batch_size, joints_num, 6)
+ # joints (batch_size, joints_num, 3)
+ # root_pos (batch_size, 3)
+ if skel_joints is not None:
+ # skel_joints = torch.from_numpy(skel_joints)
+ offsets = self.get_offsets_joints_batch(skel_joints)
+ if len(self._offset.shape) == 2:
+ offsets = self._offset.expand(cont6d_params.shape[0], -1, -1)
+ joints = torch.zeros(cont6d_params.shape[:-1] + (3,)).to(cont6d_params.device)
+ joints[..., 0, :] = root_pos
+ for chain in self._kinematic_tree:
+ if do_root_R:
+ matR = cont6d_to_matrix(cont6d_params[:, 0])
+ else:
+ matR = torch.eye(3).expand((len(cont6d_params), -1, -1)).detach().to(cont6d_params.device)
+ for i in range(1, len(chain)):
+ matR = torch.matmul(matR, cont6d_to_matrix(cont6d_params[:, chain[i]]))
+ offset_vec = offsets[:, chain[i]].unsqueeze(-1)
+ # print(matR.shape, offset_vec.shape)
+ joints[:, chain[i]] = torch.matmul(matR, offset_vec).squeeze(-1) + joints[:, chain[i-1]]
+ return joints
+
+
+
+
+
diff --git a/MuseV/MMCM/mmcm/t2p/utils/utils_model.py b/MuseV/MMCM/mmcm/t2p/utils/utils_model.py
new file mode 100755
index 0000000000000000000000000000000000000000..b3653a47ddb96f2ba27aae73b4eef8be904e9bf0
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/utils/utils_model.py
@@ -0,0 +1,66 @@
+import numpy as np
+import torch
+import torch.optim as optim
+import logging
+import os
+import sys
+
+def getCi(accLog):
+
+ mean = np.mean(accLog)
+ std = np.std(accLog)
+ ci95 = 1.96*std/np.sqrt(len(accLog))
+
+ return mean, ci95
+
+def get_logger(out_dir):
+ logger = logging.getLogger('Exp')
+ logger.setLevel(logging.INFO)
+ formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s")
+
+ file_path = os.path.join(out_dir, "run.log")
+ file_hdlr = logging.FileHandler(file_path)
+ file_hdlr.setFormatter(formatter)
+
+ strm_hdlr = logging.StreamHandler(sys.stdout)
+ strm_hdlr.setFormatter(formatter)
+
+ logger.addHandler(file_hdlr)
+ logger.addHandler(strm_hdlr)
+ return logger
+
+## Optimizer
+def initial_optim(decay_option, lr, weight_decay, net, optimizer) :
+
+ if optimizer == 'adamw' :
+ optimizer_adam_family = optim.AdamW
+ elif optimizer == 'adam' :
+ optimizer_adam_family = optim.Adam
+ if decay_option == 'all':
+ #optimizer = optimizer_adam_family(net.parameters(), lr=lr, betas=(0.9, 0.999), weight_decay=weight_decay)
+ optimizer = optimizer_adam_family(net.parameters(), lr=lr, betas=(0.5, 0.9), weight_decay=weight_decay)
+
+ elif decay_option == 'noVQ':
+ all_params = set(net.parameters())
+ no_decay = set([net.vq_layer])
+
+ decay = all_params - no_decay
+ optimizer = optimizer_adam_family([
+ {'params': list(no_decay), 'weight_decay': 0},
+ {'params': list(decay), 'weight_decay' : weight_decay}], lr=lr)
+
+ return optimizer
+
+
+def get_motion_with_trans(motion, velocity) :
+ '''
+ motion : torch.tensor, shape (batch_size, T, 72), with the global translation = 0
+ velocity : torch.tensor, shape (batch_size, T, 3), contain the information of velocity = 0
+
+ '''
+ trans = torch.cumsum(velocity, dim=1)
+ trans = trans - trans[:, :1] ## the first root is initialized at 0 (just for visualization)
+ trans = trans.repeat((1, 1, 21))
+ motion_with_trans = motion + trans
+ return motion_with_trans
+
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/utils/word_vectorizer.py b/MuseV/MMCM/mmcm/t2p/utils/word_vectorizer.py
new file mode 100755
index 0000000000000000000000000000000000000000..557ff97a9539c084167f3eca51fb50f53f33c8ea
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/utils/word_vectorizer.py
@@ -0,0 +1,99 @@
+import numpy as np
+import pickle
+from os.path import join as pjoin
+
+POS_enumerator = {
+ 'VERB': 0,
+ 'NOUN': 1,
+ 'DET': 2,
+ 'ADP': 3,
+ 'NUM': 4,
+ 'AUX': 5,
+ 'PRON': 6,
+ 'ADJ': 7,
+ 'ADV': 8,
+ 'Loc_VIP': 9,
+ 'Body_VIP': 10,
+ 'Obj_VIP': 11,
+ 'Act_VIP': 12,
+ 'Desc_VIP': 13,
+ 'OTHER': 14,
+}
+
+Loc_list = ('left', 'right', 'clockwise', 'counterclockwise', 'anticlockwise', 'forward', 'back', 'backward',
+ 'up', 'down', 'straight', 'curve')
+
+Body_list = ('arm', 'chin', 'foot', 'feet', 'face', 'hand', 'mouth', 'leg', 'waist', 'eye', 'knee', 'shoulder', 'thigh')
+
+Obj_List = ('stair', 'dumbbell', 'chair', 'window', 'floor', 'car', 'ball', 'handrail', 'baseball', 'basketball')
+
+Act_list = ('walk', 'run', 'swing', 'pick', 'bring', 'kick', 'put', 'squat', 'throw', 'hop', 'dance', 'jump', 'turn',
+ 'stumble', 'dance', 'stop', 'sit', 'lift', 'lower', 'raise', 'wash', 'stand', 'kneel', 'stroll',
+ 'rub', 'bend', 'balance', 'flap', 'jog', 'shuffle', 'lean', 'rotate', 'spin', 'spread', 'climb')
+
+Desc_list = ('slowly', 'carefully', 'fast', 'careful', 'slow', 'quickly', 'happy', 'angry', 'sad', 'happily',
+ 'angrily', 'sadly')
+
+VIP_dict = {
+ 'Loc_VIP': Loc_list,
+ 'Body_VIP': Body_list,
+ 'Obj_VIP': Obj_List,
+ 'Act_VIP': Act_list,
+ 'Desc_VIP': Desc_list,
+}
+
+
+class WordVectorizer(object):
+ def __init__(self, meta_root, prefix):
+ vectors = np.load(pjoin(meta_root, '%s_data.npy'%prefix))
+ words = pickle.load(open(pjoin(meta_root, '%s_words.pkl'%prefix), 'rb'))
+ self.word2idx = pickle.load(open(pjoin(meta_root, '%s_idx.pkl'%prefix), 'rb'))
+ self.word2vec = {w: vectors[self.word2idx[w]] for w in words}
+
+ def _get_pos_ohot(self, pos):
+ pos_vec = np.zeros(len(POS_enumerator))
+ if pos in POS_enumerator:
+ pos_vec[POS_enumerator[pos]] = 1
+ else:
+ pos_vec[POS_enumerator['OTHER']] = 1
+ return pos_vec
+
+ def __len__(self):
+ return len(self.word2vec)
+
+ def __getitem__(self, item):
+ word, pos = item.split('/')
+ if word in self.word2vec:
+ word_vec = self.word2vec[word]
+ vip_pos = None
+ for key, values in VIP_dict.items():
+ if word in values:
+ vip_pos = key
+ break
+ if vip_pos is not None:
+ pos_vec = self._get_pos_ohot(vip_pos)
+ else:
+ pos_vec = self._get_pos_ohot(pos)
+ else:
+ word_vec = self.word2vec['unk']
+ pos_vec = self._get_pos_ohot('OTHER')
+ return word_vec, pos_vec
+
+
+class WordVectorizerV2(WordVectorizer):
+ def __init__(self, meta_root, prefix):
+ super(WordVectorizerV2, self).__init__(meta_root, prefix)
+ self.idx2word = {self.word2idx[w]: w for w in self.word2idx}
+
+ def __getitem__(self, item):
+ word_vec, pose_vec = super(WordVectorizerV2, self).__getitem__(item)
+ word, pos = item.split('/')
+ if word in self.word2vec:
+ return word_vec, pose_vec, self.word2idx[word]
+ else:
+ return word_vec, pose_vec, self.word2idx['unk']
+
+ def itos(self, idx):
+ if idx == len(self.idx2word):
+ return "pad"
+ return self.idx2word[idx]
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/visualization/plot_3d_global.py b/MuseV/MMCM/mmcm/t2p/visualization/plot_3d_global.py
new file mode 100755
index 0000000000000000000000000000000000000000..9f163a5b67c8a98cc259a8c8c4e435d0646ab48f
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/visualization/plot_3d_global.py
@@ -0,0 +1,131 @@
+import torch
+import matplotlib.pyplot as plt
+import numpy as np
+import io
+import matplotlib
+from mpl_toolkits.mplot3d.art3d import Poly3DCollection
+import mpl_toolkits.mplot3d.axes3d as p3
+from textwrap import wrap
+import imageio
+
+def plot_3d_motion(args, figsize=(10, 10), fps=120, radius=4):
+ matplotlib.use('Agg')
+
+ plt.style.use('dark_background')
+ joints, out_name, title = args #kit(192,22,3)
+
+ data = joints.copy().reshape(len(joints), -1, 3)
+
+ nb_joints = joints.shape[1]# kit:22 openpose 25
+ smpl_kinetic_chain = [[0, 11, 12, 13, 14, 15], [0, 16, 17, 18, 19, 20], [0, 1, 2, 3, 4], [3, 5, 6, 7], [3, 8, 9, 10]] if nb_joints == 21 else [[0, 2, 5, 8, 11], [0, 1, 4, 7, 10], [0, 3, 6, 9, 12, 15], [9, 14, 17, 19, 21], [9, 13, 16, 18, 20]]
+ # 22关键点 [0, 2, 5, 8, 11]表示连接了五个关键点,分别是左脚踝(0号关键点)、左髋部(2号关键点)、左肩部(5号关键点)、左手腕(8号关键点)和左肘部(11号关键点),这五个关键点按照顺序连接起来。
+ # [0, 11, 12, 13, 14, 15]表示连接了六个关键点,分别是骨盆(0号关键点)、左大腿(11号关键点)、左小腿(12号关键点)、左脚踝(13号关键点)、左脚尖(14号关键点)和左脚掌(15号关键点
+ limits = 1000 if nb_joints == 21 else 2
+ MINS = data.min(axis=0).min(axis=0)
+ MAXS = data.max(axis=0).max(axis=0)
+ colors = ['red', 'blue', 'black', 'red', 'blue',
+ 'darkblue', 'darkblue', 'darkblue', 'darkblue', 'darkblue',
+ 'darkred', 'darkred', 'darkred', 'darkred', 'darkred']
+ frame_number = data.shape[0]
+ # print(data.shape)
+
+ height_offset = MINS[1]
+ data[:, :, 1] -= height_offset
+ trajec = data[:, 0, [0, 2]]
+
+ data[..., 0] -= data[:, 0:1, 0]
+ data[..., 2] -= data[:, 0:1, 2]
+
+ def update(index):
+
+ def init():
+ ax.set_xlim(-limits, limits)
+ ax.set_ylim(-limits, limits)
+ ax.set_zlim(0, limits)
+ ax.grid(b=False)
+ def plot_xzPlane(minx, maxx, miny, minz, maxz):
+ ## Plot a plane XZ
+ verts = [
+ [minx, miny, minz],
+ [minx, miny, maxz],
+ [maxx, miny, maxz],
+ [maxx, miny, minz]
+ ]
+ xz_plane = Poly3DCollection([verts])
+ xz_plane.set_facecolor((0.5, 0.5, 0.5, 0.5))
+ #xz_plane.set_facecolor(())
+ #ax.add_collection3d(xz_plane)#绘制行走平面
+ fig = plt.figure(figsize=(480/96., 320/96.), dpi=96) if nb_joints == 21 else plt.figure(figsize=(10, 10), dpi=96)
+ if title is not None :
+ wraped_title = '\n'.join(wrap(title, 40))
+ fig.suptitle(wraped_title, fontsize=16)
+ ax = p3.Axes3D(fig)
+
+ init()
+
+ #ax.lines = []
+ #ax.collections = []
+ ax.view_init(elev=110, azim=-90)
+ ax.dist = 7.5
+ # ax =
+ plot_xzPlane(MINS[0] - trajec[index, 0], MAXS[0] - trajec[index, 0], 0, MINS[2] - trajec[index, 1],
+ MAXS[2] - trajec[index, 1])
+ # ax.scatter(data[index, :22, 0], data[index, :22, 1], data[index, :22, 2], color='black', s=3)
+
+ if index > 1:
+ ax.plot3D(trajec[:index, 0] - trajec[index, 0], np.zeros_like(trajec[:index, 0]),
+ trajec[:index, 1] - trajec[index, 1], linewidth=1.0,
+ color='blue')
+ # ax = plot_xzPlane(ax, MINS[0], MAXS[0], 0, MINS[2], MAXS[2])
+
+ for i, (chain, color) in enumerate(zip(smpl_kinetic_chain, colors)):
+
+ if i < 5:
+ linewidth = 4.0
+ else:
+ linewidth = 2.0
+ ax.plot3D(data[index, chain, 0], data[index, chain, 1], data[index, chain, 2], linewidth=linewidth,color=color)#xyz width color
+ #ax.text(data[index, chain, 0], data[index, chain, 1], data[index, chain, 2], str(chain), fontsize = 15)
+ plt.axis('off')
+ ax.set_xticklabels([])
+ ax.set_yticklabels([])
+ ax.set_zticklabels([])
+
+ #plt.savefig(f'./smpl_{index}.jpg', dpi=96)
+ if out_name is not None :
+ plt.savefig(out_name, dpi=96)
+ plt.close()
+
+ else :
+ io_buf = io.BytesIO()
+ fig.savefig(io_buf, format='raw', dpi=96)
+ io_buf.seek(0)
+ # print(fig.bbox.bounds)
+ arr = np.reshape(np.frombuffer(io_buf.getvalue(), dtype=np.uint8),
+ newshape=(int(fig.bbox.bounds[3]), int(fig.bbox.bounds[2]), -1))
+ io_buf.close()
+ plt.close()
+ return arr
+
+ out = []
+ for i in range(frame_number) :
+ out.append(update(i))
+ out = np.stack(out, axis=0)
+ return torch.from_numpy(out)
+
+
+def draw_to_batch(smpl_joints_batch, title_batch=None, outname=None) :
+
+ batch_size = len(smpl_joints_batch)
+ out = []
+ for i in range(batch_size) :
+ out.append(plot_3d_motion([smpl_joints_batch[i], None, title_batch[i] if title_batch is not None else None]))
+ if outname is not None:
+ imageio.mimsave(outname[i], np.array(out[-1]), duration=1000/20)
+ out = torch.stack(out, axis=0)
+ return out
+
+
+
+
+
diff --git a/MuseV/MMCM/mmcm/t2p/visualize/joints2smpl/src/config.py b/MuseV/MMCM/mmcm/t2p/visualize/joints2smpl/src/config.py
new file mode 100755
index 0000000000000000000000000000000000000000..a08aa5f905d18e87932ab0de283ecbef11d1c057
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/visualize/joints2smpl/src/config.py
@@ -0,0 +1,40 @@
+import numpy as np
+
+# Map joints Name to SMPL joints idx
+JOINT_MAP = {
+'MidHip': 0,
+'LHip': 1, 'LKnee': 4, 'LAnkle': 7, 'LFoot': 10,
+'RHip': 2, 'RKnee': 5, 'RAnkle': 8, 'RFoot': 11,
+'LShoulder': 16, 'LElbow': 18, 'LWrist': 20, 'LHand': 22,
+'RShoulder': 17, 'RElbow': 19, 'RWrist': 21, 'RHand': 23,
+'spine1': 3, 'spine2': 6, 'spine3': 9, 'Neck': 12, 'Head': 15,
+'LCollar':13, 'Rcollar' :14,
+'Nose':24, 'REye':26, 'LEye':26, 'REar':27, 'LEar':28,
+'LHeel': 31, 'RHeel': 34,
+'OP RShoulder': 17, 'OP LShoulder': 16,
+'OP RHip': 2, 'OP LHip': 1,
+'OP Neck': 12,
+}
+
+full_smpl_idx = range(24)
+key_smpl_idx = [0, 1, 4, 7, 2, 5, 8, 17, 19, 21, 16, 18, 20]
+
+
+AMASS_JOINT_MAP = {
+'MidHip': 0,
+'LHip': 1, 'LKnee': 4, 'LAnkle': 7, 'LFoot': 10,
+'RHip': 2, 'RKnee': 5, 'RAnkle': 8, 'RFoot': 11,
+'LShoulder': 16, 'LElbow': 18, 'LWrist': 20,
+'RShoulder': 17, 'RElbow': 19, 'RWrist': 21,
+'spine1': 3, 'spine2': 6, 'spine3': 9, 'Neck': 12, 'Head': 15,
+'LCollar':13, 'Rcollar' :14,
+}
+amass_idx = range(22)
+amass_smpl_idx = range(22)
+
+
+SMPL_MODEL_DIR = "/group/30065/users/zhanchao/code/MMCM/mmcm/t2p/body_models/"
+GMM_MODEL_DIR = "/group/30065/users/zhanchao/code/MMCM/mmcm/t2p/visualize/joints2smpl/smpl_models"
+SMPL_MEAN_FILE = "/group/30065/users/zhanchao/code/MMCM/mmcm/t2p/visualize/joints2smpl/smpl_models/neutral_smpl_mean_params.h5"
+# for collsion
+Part_Seg_DIR = "/group/30065/users/zhanchao/code/MMCM/mmcm/t2p/visualize/joints2smpl/smpl_models/smplx_parts_segm.pkl"
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/visualize/joints2smpl/src/customloss.py b/MuseV/MMCM/mmcm/t2p/visualize/joints2smpl/src/customloss.py
new file mode 100755
index 0000000000000000000000000000000000000000..18b88ccce9263715a077058a4ade1056e9ff6c96
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/visualize/joints2smpl/src/customloss.py
@@ -0,0 +1,224 @@
+from __future__ import absolute_import
+
+import torch
+import torch.nn.functional as F
+from mmcm.t2p.visualize.joints2smpl.src import config
+
+# Guassian
+def gmof(x, sigma):
+ """
+ Geman-McClure error function
+ """
+ x_squared = x ** 2
+ sigma_squared = sigma ** 2
+ return (sigma_squared * x_squared) / (sigma_squared + x_squared)
+
+# angle prior
+def angle_prior(pose):
+ """
+ Angle prior that penalizes unnatural bending of the knees and elbows
+ """
+ # We subtract 3 because pose does not include the global rotation of the model
+ return torch.exp(
+ pose[:, [55 - 3, 58 - 3, 12 - 3, 15 - 3]] * torch.tensor([1., -1., -1, -1.], device=pose.device)) ** 2
+
+
+def perspective_projection(points, rotation, translation,
+ focal_length, camera_center):
+ """
+ This function computes the perspective projection of a set of points.
+ Input:
+ points (bs, N, 3): 3D points
+ rotation (bs, 3, 3): Camera rotation
+ translation (bs, 3): Camera translation
+ focal_length (bs,) or scalar: Focal length
+ camera_center (bs, 2): Camera center
+ """
+ batch_size = points.shape[0]
+ K = torch.zeros([batch_size, 3, 3], device=points.device)
+ K[:, 0, 0] = focal_length
+ K[:, 1, 1] = focal_length
+ K[:, 2, 2] = 1.
+ K[:, :-1, -1] = camera_center
+
+ # Transform points
+ points = torch.einsum('bij,bkj->bki', rotation, points)
+ points = points + translation.unsqueeze(1)
+
+ # Apply perspective distortion
+ projected_points = points / points[:, :, -1].unsqueeze(-1)
+
+ # Apply camera intrinsics
+ projected_points = torch.einsum('bij,bkj->bki', K, projected_points)
+
+ return projected_points[:, :, :-1]
+
+
+def body_fitting_loss(body_pose, betas, model_joints, camera_t, camera_center,
+ joints_2d, joints_conf, pose_prior,
+ focal_length=5000, sigma=100, pose_prior_weight=4.78,
+ shape_prior_weight=5, angle_prior_weight=15.2,
+ output='sum'):
+ """
+ Loss function for body fitting
+ """
+ batch_size = body_pose.shape[0]
+ rotation = torch.eye(3, device=body_pose.device).unsqueeze(0).expand(batch_size, -1, -1)
+
+ projected_joints = perspective_projection(model_joints, rotation, camera_t,
+ focal_length, camera_center)
+
+ # Weighted robust reprojection error
+ reprojection_error = gmof(projected_joints - joints_2d, sigma)
+ reprojection_loss = (joints_conf ** 2) * reprojection_error.sum(dim=-1)
+
+ # Pose prior loss
+ pose_prior_loss = (pose_prior_weight ** 2) * pose_prior(body_pose, betas)
+
+ # Angle prior for knees and elbows
+ angle_prior_loss = (angle_prior_weight ** 2) * angle_prior(body_pose).sum(dim=-1)
+
+ # Regularizer to prevent betas from taking large values
+ shape_prior_loss = (shape_prior_weight ** 2) * (betas ** 2).sum(dim=-1)
+
+ total_loss = reprojection_loss.sum(dim=-1) + pose_prior_loss + angle_prior_loss + shape_prior_loss
+
+ if output == 'sum':
+ return total_loss.sum()
+ elif output == 'reprojection':
+ return reprojection_loss
+
+
+# --- get camera fitting loss -----
+def camera_fitting_loss(model_joints, camera_t, camera_t_est, camera_center,
+ joints_2d, joints_conf,
+ focal_length=5000, depth_loss_weight=100):
+ """
+ Loss function for camera optimization.
+ """
+ # Project model joints
+ batch_size = model_joints.shape[0]
+ rotation = torch.eye(3, device=model_joints.device).unsqueeze(0).expand(batch_size, -1, -1)
+ projected_joints = perspective_projection(model_joints, rotation, camera_t,
+ focal_length, camera_center)
+
+ # get the indexed four
+ op_joints = ['OP RHip', 'OP LHip', 'OP RShoulder', 'OP LShoulder']
+ op_joints_ind = [config.JOINT_MAP[joint] for joint in op_joints]
+ gt_joints = ['RHip', 'LHip', 'RShoulder', 'LShoulder']
+ gt_joints_ind = [config.JOINT_MAP[joint] for joint in gt_joints]
+
+ reprojection_error_op = (joints_2d[:, op_joints_ind] -
+ projected_joints[:, op_joints_ind]) ** 2
+ reprojection_error_gt = (joints_2d[:, gt_joints_ind] -
+ projected_joints[:, gt_joints_ind]) ** 2
+
+ # Check if for each example in the batch all 4 OpenPose detections are valid, otherwise use the GT detections
+ # OpenPose joints are more reliable for this task, so we prefer to use them if possible
+ is_valid = (joints_conf[:, op_joints_ind].min(dim=-1)[0][:, None, None] > 0).float()
+ reprojection_loss = (is_valid * reprojection_error_op + (1 - is_valid) * reprojection_error_gt).sum(dim=(1, 2))
+
+ # Loss that penalizes deviation from depth estimate
+ depth_loss = (depth_loss_weight ** 2) * (camera_t[:, 2] - camera_t_est[:, 2]) ** 2
+
+ total_loss = reprojection_loss + depth_loss
+ return total_loss.sum()
+
+
+
+ # #####--- body fitiing loss -----
+def body_fitting_loss_3d(body_pose, preserve_pose,
+ betas, model_joints, camera_translation,
+ j3d, pose_prior,
+ joints3d_conf,
+ sigma=100, pose_prior_weight=4.78*1.5,
+ shape_prior_weight=5.0, angle_prior_weight=15.2,
+ joint_loss_weight=500.0,
+ pose_preserve_weight=0.0,
+ use_collision=False,
+ model_vertices=None, model_faces=None,
+ search_tree=None, pen_distance=None, filter_faces=None,
+ collision_loss_weight=1000
+ ):
+ """
+ Loss function for body fitting
+ """
+ batch_size = body_pose.shape[0]
+
+ #joint3d_loss = (joint_loss_weight ** 2) * gmof((model_joints + camera_translation) - j3d, sigma).sum(dim=-1)
+
+ joint3d_error = gmof((model_joints + camera_translation) - j3d, sigma)
+
+ joint3d_loss_part = (joints3d_conf ** 2) * joint3d_error.sum(dim=-1)
+ joint3d_loss = ((joint_loss_weight ** 2) * joint3d_loss_part).sum(dim=-1)
+
+ # Pose prior loss
+ pose_prior_loss = (pose_prior_weight ** 2) * pose_prior(body_pose, betas)
+ # Angle prior for knees and elbows
+ angle_prior_loss = (angle_prior_weight ** 2) * angle_prior(body_pose).sum(dim=-1)
+ # Regularizer to prevent betas from taking large values
+ shape_prior_loss = (shape_prior_weight ** 2) * (betas ** 2).sum(dim=-1)
+
+ collision_loss = 0.0
+ # Calculate the loss due to interpenetration
+ if use_collision:
+ triangles = torch.index_select(
+ model_vertices, 1,
+ model_faces).view(batch_size, -1, 3, 3)
+
+ with torch.no_grad():
+ collision_idxs = search_tree(triangles)
+
+ # Remove unwanted collisions
+ if filter_faces is not None:
+ collision_idxs = filter_faces(collision_idxs)
+
+ if collision_idxs.ge(0).sum().item() > 0:
+ collision_loss = torch.sum(collision_loss_weight * pen_distance(triangles, collision_idxs))
+
+ pose_preserve_loss = (pose_preserve_weight ** 2) * ((body_pose - preserve_pose) ** 2).sum(dim=-1)
+
+ # print('joint3d_loss', joint3d_loss.shape)
+ # print('pose_prior_loss', pose_prior_loss.shape)
+ # print('angle_prior_loss', angle_prior_loss.shape)
+ # print('shape_prior_loss', shape_prior_loss.shape)
+ # print('collision_loss', collision_loss)
+ # print('pose_preserve_loss', pose_preserve_loss.shape)
+
+ total_loss = joint3d_loss + pose_prior_loss + angle_prior_loss + shape_prior_loss + collision_loss + pose_preserve_loss
+
+ return total_loss.sum()
+
+
+# #####--- get camera fitting loss -----
+def camera_fitting_loss_3d(model_joints, camera_t, camera_t_est,
+ j3d, joints_category="orig", depth_loss_weight=100.0):
+ """
+ Loss function for camera optimization.
+ """
+ model_joints = model_joints + camera_t
+ # # get the indexed four
+ # op_joints = ['OP RHip', 'OP LHip', 'OP RShoulder', 'OP LShoulder']
+ # op_joints_ind = [config.JOINT_MAP[joint] for joint in op_joints]
+ #
+ # j3d_error_loss = (j3d[:, op_joints_ind] -
+ # model_joints[:, op_joints_ind]) ** 2
+
+ gt_joints = ['RHip', 'LHip', 'RShoulder', 'LShoulder']
+ gt_joints_ind = [config.JOINT_MAP[joint] for joint in gt_joints]
+
+ if joints_category=="orig":
+ select_joints_ind = [config.JOINT_MAP[joint] for joint in gt_joints]
+ elif joints_category=="AMASS":
+ select_joints_ind = [config.AMASS_JOINT_MAP[joint] for joint in gt_joints]
+ else:
+ print("NO SUCH JOINTS CATEGORY!")
+
+ j3d_error_loss = (j3d[:, select_joints_ind] -
+ model_joints[:, gt_joints_ind]) ** 2
+
+ # Loss that penalizes deviation from depth estimate
+ depth_loss = (depth_loss_weight**2) * (camera_t - camera_t_est)**2
+
+ total_loss = j3d_error_loss + depth_loss
+ return total_loss.sum()
diff --git a/MuseV/MMCM/mmcm/t2p/visualize/joints2smpl/src/prior.py b/MuseV/MMCM/mmcm/t2p/visualize/joints2smpl/src/prior.py
new file mode 100755
index 0000000000000000000000000000000000000000..7f13806dd1f6607507b0c7e5ad463b3fb0026be8
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/visualize/joints2smpl/src/prior.py
@@ -0,0 +1,230 @@
+# -*- coding: utf-8 -*-
+
+# Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. (MPG) is
+# holder of all proprietary rights on this computer program.
+# You can only use this computer program if you have closed
+# a license agreement with MPG or you get the right to use the computer
+# program from someone who is authorized to grant you that right.
+# Any use of the computer program without a valid license is prohibited and
+# liable to prosecution.
+#
+# Copyright©2019 Max-Planck-Gesellschaft zur Förderung
+# der Wissenschaften e.V. (MPG). acting on behalf of its Max Planck Institute
+# for Intelligent Systems. All rights reserved.
+#
+# Contact: ps-license@tuebingen.mpg.de
+
+from __future__ import absolute_import
+from __future__ import print_function
+from __future__ import division
+
+import sys
+import os
+
+import time
+import pickle
+
+import numpy as np
+
+import torch
+import torch.nn as nn
+
+DEFAULT_DTYPE = torch.float32
+
+
+def create_prior(prior_type, **kwargs):
+ if prior_type == 'gmm':
+ prior = MaxMixturePrior(**kwargs)
+ elif prior_type == 'l2':
+ return L2Prior(**kwargs)
+ elif prior_type == 'angle':
+ return SMPLifyAnglePrior(**kwargs)
+ elif prior_type == 'none' or prior_type is None:
+ # Don't use any pose prior
+ def no_prior(*args, **kwargs):
+ return 0.0
+ prior = no_prior
+ else:
+ raise ValueError('Prior {}'.format(prior_type) + ' is not implemented')
+ return prior
+
+
+class SMPLifyAnglePrior(nn.Module):
+ def __init__(self, dtype=torch.float32, **kwargs):
+ super(SMPLifyAnglePrior, self).__init__()
+
+ # Indices for the roration angle of
+ # 55: left elbow, 90deg bend at -np.pi/2
+ # 58: right elbow, 90deg bend at np.pi/2
+ # 12: left knee, 90deg bend at np.pi/2
+ # 15: right knee, 90deg bend at np.pi/2
+ angle_prior_idxs = np.array([55, 58, 12, 15], dtype=np.int64)
+ angle_prior_idxs = torch.tensor(angle_prior_idxs, dtype=torch.long)
+ self.register_buffer('angle_prior_idxs', angle_prior_idxs)
+
+ angle_prior_signs = np.array([1, -1, -1, -1],
+ dtype=np.float32 if dtype == torch.float32
+ else np.float64)
+ angle_prior_signs = torch.tensor(angle_prior_signs,
+ dtype=dtype)
+ self.register_buffer('angle_prior_signs', angle_prior_signs)
+
+ def forward(self, pose, with_global_pose=False):
+ ''' Returns the angle prior loss for the given pose
+
+ Args:
+ pose: (Bx[23 + 1] * 3) torch tensor with the axis-angle
+ representation of the rotations of the joints of the SMPL model.
+ Kwargs:
+ with_global_pose: Whether the pose vector also contains the global
+ orientation of the SMPL model. If not then the indices must be
+ corrected.
+ Returns:
+ A sze (B) tensor containing the angle prior loss for each element
+ in the batch.
+ '''
+ angle_prior_idxs = self.angle_prior_idxs - (not with_global_pose) * 3
+ return torch.exp(pose[:, angle_prior_idxs] *
+ self.angle_prior_signs).pow(2)
+
+
+class L2Prior(nn.Module):
+ def __init__(self, dtype=DEFAULT_DTYPE, reduction='sum', **kwargs):
+ super(L2Prior, self).__init__()
+
+ def forward(self, module_input, *args):
+ return torch.sum(module_input.pow(2))
+
+
+class MaxMixturePrior(nn.Module):
+
+ def __init__(self, prior_folder='prior',
+ num_gaussians=6, dtype=DEFAULT_DTYPE, epsilon=1e-16,
+ use_merged=True,
+ **kwargs):
+ super(MaxMixturePrior, self).__init__()
+
+ if dtype == DEFAULT_DTYPE:
+ np_dtype = np.float32
+ elif dtype == torch.float64:
+ np_dtype = np.float64
+ else:
+ print('Unknown float type {}, exiting!'.format(dtype))
+ sys.exit(-1)
+
+ self.num_gaussians = num_gaussians
+ self.epsilon = epsilon
+ self.use_merged = use_merged
+ gmm_fn = 'gmm_{:02d}.pkl'.format(num_gaussians)
+
+ full_gmm_fn = os.path.join(prior_folder, gmm_fn)
+ if not os.path.exists(full_gmm_fn):
+ print('The path to the mixture prior "{}"'.format(full_gmm_fn) +
+ ' does not exist, exiting!')
+ sys.exit(-1)
+
+ with open(full_gmm_fn, 'rb') as f:
+ gmm = pickle.load(f, encoding='latin1')
+
+ if type(gmm) == dict:
+ means = gmm['means'].astype(np_dtype)
+ covs = gmm['covars'].astype(np_dtype)
+ weights = gmm['weights'].astype(np_dtype)
+ elif 'sklearn.mixture.gmm.GMM' in str(type(gmm)):
+ means = gmm.means_.astype(np_dtype)
+ covs = gmm.covars_.astype(np_dtype)
+ weights = gmm.weights_.astype(np_dtype)
+ else:
+ print('Unknown type for the prior: {}, exiting!'.format(type(gmm)))
+ sys.exit(-1)
+
+ self.register_buffer('means', torch.tensor(means, dtype=dtype))
+
+ self.register_buffer('covs', torch.tensor(covs, dtype=dtype))
+
+ precisions = [np.linalg.inv(cov) for cov in covs]
+ precisions = np.stack(precisions).astype(np_dtype)
+
+ self.register_buffer('precisions',
+ torch.tensor(precisions, dtype=dtype))
+
+ # The constant term:
+ sqrdets = np.array([(np.sqrt(np.linalg.det(c)))
+ for c in gmm['covars']])
+ const = (2 * np.pi)**(69 / 2.)
+
+ nll_weights = np.asarray(gmm['weights'] / (const *
+ (sqrdets / sqrdets.min())))
+ nll_weights = torch.tensor(nll_weights, dtype=dtype).unsqueeze(dim=0)
+ self.register_buffer('nll_weights', nll_weights)
+
+ weights = torch.tensor(gmm['weights'], dtype=dtype).unsqueeze(dim=0)
+ self.register_buffer('weights', weights)
+
+ self.register_buffer('pi_term',
+ torch.log(torch.tensor(2 * np.pi, dtype=dtype)))
+
+ cov_dets = [np.log(np.linalg.det(cov.astype(np_dtype)) + epsilon)
+ for cov in covs]
+ self.register_buffer('cov_dets',
+ torch.tensor(cov_dets, dtype=dtype))
+
+ # The dimensionality of the random variable
+ self.random_var_dim = self.means.shape[1]
+
+ def get_mean(self):
+ ''' Returns the mean of the mixture '''
+ mean_pose = torch.matmul(self.weights, self.means)
+ return mean_pose
+
+ def merged_log_likelihood(self, pose, betas):
+ diff_from_mean = pose.unsqueeze(dim=1) - self.means
+
+ prec_diff_prod = torch.einsum('mij,bmj->bmi',
+ [self.precisions, diff_from_mean])
+ diff_prec_quadratic = (prec_diff_prod * diff_from_mean).sum(dim=-1)
+
+ curr_loglikelihood = 0.5 * diff_prec_quadratic - \
+ torch.log(self.nll_weights)
+ # curr_loglikelihood = 0.5 * (self.cov_dets.unsqueeze(dim=0) +
+ # self.random_var_dim * self.pi_term +
+ # diff_prec_quadratic
+ # ) - torch.log(self.weights)
+
+ min_likelihood, _ = torch.min(curr_loglikelihood, dim=1)
+ return min_likelihood
+
+ def log_likelihood(self, pose, betas, *args, **kwargs):
+ ''' Create graph operation for negative log-likelihood calculation
+ '''
+ likelihoods = []
+
+ for idx in range(self.num_gaussians):
+ mean = self.means[idx]
+ prec = self.precisions[idx]
+ cov = self.covs[idx]
+ diff_from_mean = pose - mean
+
+ curr_loglikelihood = torch.einsum('bj,ji->bi',
+ [diff_from_mean, prec])
+ curr_loglikelihood = torch.einsum('bi,bi->b',
+ [curr_loglikelihood,
+ diff_from_mean])
+ cov_term = torch.log(torch.det(cov) + self.epsilon)
+ curr_loglikelihood += 0.5 * (cov_term +
+ self.random_var_dim *
+ self.pi_term)
+ likelihoods.append(curr_loglikelihood)
+
+ log_likelihoods = torch.stack(likelihoods, dim=1)
+ min_idx = torch.argmin(log_likelihoods, dim=1)
+ weight_component = self.nll_weights[:, min_idx]
+ weight_component = -torch.log(weight_component)
+
+ return weight_component + log_likelihoods[:, min_idx]
+
+ def forward(self, pose, betas):
+ if self.use_merged:
+ return self.merged_log_likelihood(pose, betas)
+ else:
+ return self.log_likelihood(pose, betas)
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/visualize/joints2smpl/src/smplify.py b/MuseV/MMCM/mmcm/t2p/visualize/joints2smpl/src/smplify.py
new file mode 100755
index 0000000000000000000000000000000000000000..be32870e48b177b46cf91655ebf2592a379fe843
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/visualize/joints2smpl/src/smplify.py
@@ -0,0 +1,281 @@
+from __future__ import absolute_import
+
+import torch
+import os, sys
+import pickle
+import smplx
+import numpy as np
+
+sys.path.append(os.path.dirname(__file__))
+from customloss import (camera_fitting_loss,
+ body_fitting_loss,
+ camera_fitting_loss_3d,
+ body_fitting_loss_3d,
+ )
+from prior import MaxMixturePrior
+from mmcm.t2p.visualize.joints2smpl.src import config
+
+
+
+@torch.no_grad()
+def guess_init_3d(model_joints,
+ j3d,
+ joints_category="orig"):
+ """Initialize the camera translation via triangle similarity, by using the torso joints .
+ :param model_joints: SMPL model with pre joints
+ :param j3d: 25x3 array of Kinect Joints
+ :returns: 3D vector corresponding to the estimated camera translation
+ """
+ # get the indexed four
+ gt_joints = ['RHip', 'LHip', 'RShoulder', 'LShoulder']
+ gt_joints_ind = [config.JOINT_MAP[joint] for joint in gt_joints]
+
+ if joints_category=="orig":
+ joints_ind_category = [config.JOINT_MAP[joint] for joint in gt_joints]
+ elif joints_category=="AMASS":
+ joints_ind_category = [config.AMASS_JOINT_MAP[joint] for joint in gt_joints]
+ else:
+ print("NO SUCH JOINTS CATEGORY!")
+
+ sum_init_t = (j3d[:, joints_ind_category] - model_joints[:, gt_joints_ind]).sum(dim=1)
+ init_t = sum_init_t / 4.0
+ return init_t
+
+
+# SMPLIfy 3D
+class SMPLify3D():
+ """Implementation of SMPLify, use 3D joints."""
+
+ def __init__(self,
+ smplxmodel,
+ step_size=1e-2,
+ batch_size=1,
+ num_iters=100,
+ use_collision=False,
+ use_lbfgs=True,
+ joints_category="orig",
+ device=torch.device('cuda:0'),
+ ):
+
+ # Store options
+ self.batch_size = batch_size
+ self.device = device
+ self.step_size = step_size
+
+ self.num_iters = num_iters
+ # --- choose optimizer
+ self.use_lbfgs = use_lbfgs
+ # GMM pose prior
+ self.pose_prior = MaxMixturePrior(prior_folder=config.GMM_MODEL_DIR,
+ num_gaussians=8,
+ dtype=torch.float32).to(device)
+ # collision part
+ self.use_collision = use_collision
+ if self.use_collision:
+ self.part_segm_fn = config.Part_Seg_DIR
+
+ # reLoad SMPL-X model
+ self.smpl = smplxmodel
+
+ self.model_faces = smplxmodel.faces_tensor.view(-1)
+
+ # select joint joint_category
+ self.joints_category = joints_category
+
+ if joints_category=="orig":
+ self.smpl_index = config.full_smpl_idx
+ self.corr_index = config.full_smpl_idx
+ elif joints_category=="AMASS":
+ self.smpl_index = config.amass_smpl_idx
+ self.corr_index = config.amass_idx
+ else:
+ self.smpl_index = None
+ self.corr_index = None
+ print("NO SUCH JOINTS CATEGORY!")
+
+ # ---- get the man function here ------
+ def __call__(self, init_pose, init_betas, init_cam_t, j3d, conf_3d=1.0, seq_ind=0):
+ """Perform body fitting.
+ Input:
+ init_pose: SMPL pose estimate
+ init_betas: SMPL betas estimate
+ init_cam_t: Camera translation estimate
+ j3d: joints 3d aka keypoints
+ conf_3d: confidence for 3d joints
+ seq_ind: index of the sequence
+ Returns:
+ vertices: Vertices of optimized shape
+ joints: 3D joints of optimized shape
+ pose: SMPL pose parameters of optimized shape
+ betas: SMPL beta parameters of optimized shape
+ camera_translation: Camera translation
+ """
+
+ # # # add the mesh inter-section to avoid
+ search_tree = None
+ pen_distance = None
+ filter_faces = None
+
+ if self.use_collision:
+ from mesh_intersection.bvh_search_tree import BVH
+ import mesh_intersection.loss as collisions_loss
+ from mesh_intersection.filter_faces import FilterFaces
+
+ search_tree = BVH(max_collisions=8)
+
+ pen_distance = collisions_loss.DistanceFieldPenetrationLoss(
+ sigma=0.5, point2plane=False, vectorized=True, penalize_outside=True)
+
+ if self.part_segm_fn:
+ # Read the part segmentation
+ part_segm_fn = os.path.expandvars(self.part_segm_fn)
+ with open(part_segm_fn, 'rb') as faces_parents_file:
+ face_segm_data = pickle.load(faces_parents_file, encoding='latin1')
+ faces_segm = face_segm_data['segm']
+ faces_parents = face_segm_data['parents']
+ # Create the module used to filter invalid collision pairs
+ filter_faces = FilterFaces(
+ faces_segm=faces_segm, faces_parents=faces_parents,
+ ign_part_pairs=None).to(device=self.device)
+
+
+ # Split SMPL pose to body pose and global orientation
+ body_pose = init_pose[:, 3:].detach().clone()
+ global_orient = init_pose[:, :3].detach().clone()
+ betas = init_betas.detach().clone()
+
+ # use guess 3d to get the initial
+ smpl_output = self.smpl(global_orient=global_orient,
+ body_pose=body_pose,
+ betas=betas)
+ model_joints = smpl_output.joints
+
+ init_cam_t = guess_init_3d(model_joints, j3d, self.joints_category).unsqueeze(1).detach()
+ camera_translation = init_cam_t.clone()
+
+ preserve_pose = init_pose[:, 3:].detach().clone()
+ # -------------Step 1: Optimize camera translation and body orientation--------
+ # Optimize only camera translation and body orientation
+ body_pose.requires_grad = False
+ betas.requires_grad = False
+ global_orient.requires_grad = True
+ camera_translation.requires_grad = True
+
+ camera_opt_params = [global_orient, camera_translation]
+
+ if self.use_lbfgs:
+ camera_optimizer = torch.optim.LBFGS(camera_opt_params, max_iter=self.num_iters,
+ lr=self.step_size, line_search_fn='strong_wolfe')
+ for i in range(10):
+ def closure():
+ camera_optimizer.zero_grad()
+ smpl_output = self.smpl(global_orient=global_orient,
+ body_pose=body_pose,
+ betas=betas)
+ model_joints = smpl_output.joints
+ # print('model_joints', model_joints.shape)
+ # print('camera_translation', camera_translation.shape)
+ # print('init_cam_t', init_cam_t.shape)
+ # print('j3d', j3d.shape)
+ loss = camera_fitting_loss_3d(model_joints, camera_translation,
+ init_cam_t, j3d, self.joints_category)
+ loss.backward()
+ return loss
+
+ camera_optimizer.step(closure)
+ else:
+ camera_optimizer = torch.optim.Adam(camera_opt_params, lr=self.step_size, betas=(0.9, 0.999))
+
+ for i in range(20):
+ smpl_output = self.smpl(global_orient=global_orient,
+ body_pose=body_pose,
+ betas=betas)
+ model_joints = smpl_output.joints
+
+ loss = camera_fitting_loss_3d(model_joints[:, self.smpl_index], camera_translation,
+ init_cam_t, j3d[:, self.corr_index], self.joints_category)
+ camera_optimizer.zero_grad()
+ loss.backward()
+ camera_optimizer.step()
+
+ # Fix camera translation after optimizing camera
+ # --------Step 2: Optimize body joints --------------------------
+ # Optimize only the body pose and global orientation of the body
+ body_pose.requires_grad = True
+ global_orient.requires_grad = True
+ camera_translation.requires_grad = True
+
+ # --- if we use the sequence, fix the shape
+ if seq_ind == 0:
+ betas.requires_grad = True
+ body_opt_params = [body_pose, betas, global_orient, camera_translation]
+ else:
+ betas.requires_grad = False
+ body_opt_params = [body_pose, global_orient, camera_translation]
+
+ if self.use_lbfgs:
+ body_optimizer = torch.optim.LBFGS(body_opt_params, max_iter=self.num_iters,
+ lr=self.step_size, line_search_fn='strong_wolfe')
+ for i in range(self.num_iters):
+ def closure():
+ body_optimizer.zero_grad()
+ smpl_output = self.smpl(global_orient=global_orient,
+ body_pose=body_pose,
+ betas=betas)
+ model_joints = smpl_output.joints
+ model_vertices = smpl_output.vertices
+
+ loss = body_fitting_loss_3d(body_pose, preserve_pose, betas, model_joints[:, self.smpl_index], camera_translation,
+ j3d[:, self.corr_index], self.pose_prior,
+ joints3d_conf=conf_3d,
+ joint_loss_weight=600.0,
+ pose_preserve_weight=5.0,
+ use_collision=self.use_collision,
+ model_vertices=model_vertices, model_faces=self.model_faces,
+ search_tree=search_tree, pen_distance=pen_distance, filter_faces=filter_faces)
+ loss.backward()
+ return loss
+
+ body_optimizer.step(closure)
+ else:
+ body_optimizer = torch.optim.Adam(body_opt_params, lr=self.step_size, betas=(0.9, 0.999))
+
+ for i in range(self.num_iters):
+ smpl_output = self.smpl(global_orient=global_orient,
+ body_pose=body_pose,
+ betas=betas)
+ model_joints = smpl_output.joints
+ model_vertices = smpl_output.vertices
+
+ loss = body_fitting_loss_3d(body_pose, preserve_pose, betas, model_joints[:, self.smpl_index], camera_translation,
+ j3d[:, self.corr_index], self.pose_prior,
+ joints3d_conf=conf_3d,
+ joint_loss_weight=600.0,
+ use_collision=self.use_collision,
+ model_vertices=model_vertices, model_faces=self.model_faces,
+ search_tree=search_tree, pen_distance=pen_distance, filter_faces=filter_faces)
+ body_optimizer.zero_grad()
+ loss.backward()
+ body_optimizer.step()
+
+ # Get final loss value
+ with torch.no_grad():
+ smpl_output = self.smpl(global_orient=global_orient,
+ body_pose=body_pose,
+ betas=betas, return_full_pose=True)
+ model_joints = smpl_output.joints
+ model_vertices = smpl_output.vertices
+
+ final_loss = body_fitting_loss_3d(body_pose, preserve_pose, betas, model_joints[:, self.smpl_index], camera_translation,
+ j3d[:, self.corr_index], self.pose_prior,
+ joints3d_conf=conf_3d,
+ joint_loss_weight=600.0,
+ use_collision=self.use_collision, model_vertices=model_vertices, model_faces=self.model_faces,
+ search_tree=search_tree, pen_distance=pen_distance, filter_faces=filter_faces)
+
+ vertices = smpl_output.vertices.detach()
+ joints = smpl_output.joints.detach()
+ pose = torch.cat([global_orient, body_pose], dim=-1).detach()
+ betas = betas.detach()
+
+ return vertices, joints, pose, betas, camera_translation, final_loss
diff --git a/MuseV/MMCM/mmcm/t2p/visualize/render_mesh.py b/MuseV/MMCM/mmcm/t2p/visualize/render_mesh.py
new file mode 100755
index 0000000000000000000000000000000000000000..5899ba96562dc465626be66e3e661e8d7c1fecca
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/visualize/render_mesh.py
@@ -0,0 +1,33 @@
+import argparse
+import os
+from .visualize import vis_utils
+import shutil
+from tqdm import tqdm
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--input_path", type=str, required=True, help='stick figure mp4 file to be rendered.')
+ parser.add_argument("--cuda", type=bool, default=True, help='')
+ parser.add_argument("--device", type=int, default=0, help='')
+ params = parser.parse_args()
+
+ assert params.input_path.endswith('.mp4')
+ parsed_name = os.path.basename(params.input_path).replace('.mp4', '').replace('sample', '').replace('rep', '')
+ sample_i, rep_i = [int(e) for e in parsed_name.split('_')]
+ npy_path = os.path.join(os.path.dirname(params.input_path), 'results.npy')
+ out_npy_path = params.input_path.replace('.mp4', '_smpl_params.npy')
+ assert os.path.exists(npy_path)
+ results_dir = params.input_path.replace('.mp4', '_obj')
+ if os.path.exists(results_dir):
+ shutil.rmtree(results_dir)
+ os.makedirs(results_dir)
+
+ npy2obj = vis_utils.npy2obj(npy_path, sample_i, rep_i,
+ device=params.device, cuda=params.cuda)
+
+ print('Saving obj files to [{}]'.format(os.path.abspath(results_dir)))
+ for frame_i in tqdm(range(npy2obj.real_num_frames)):
+ npy2obj.save_obj(os.path.join(results_dir, 'frame{:03d}.obj'.format(frame_i)), frame_i)
+
+ print('Saving SMPL params to [{}]'.format(os.path.abspath(out_npy_path)))
+ npy2obj.save_npy(out_npy_path)
diff --git a/MuseV/MMCM/mmcm/t2p/visualize/simplify_loc2rot.py b/MuseV/MMCM/mmcm/t2p/visualize/simplify_loc2rot.py
new file mode 100755
index 0000000000000000000000000000000000000000..2c7fae0b3fe2f1b0b19fc51e6a2983f8fd9cb530
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/visualize/simplify_loc2rot.py
@@ -0,0 +1,131 @@
+import numpy as np
+import os
+import torch
+from ..visualize.joints2smpl.src import config
+import smplx
+import h5py
+from ..visualize.joints2smpl.src.smplify import SMPLify3D
+from tqdm import tqdm
+from ..utils import rotation_conversions as geometry
+import argparse
+
+
+class joints2smpl:
+
+ def __init__(self, num_frames, device_id, cuda=True):
+ self.device = torch.device("cuda:" + str(device_id) if cuda else "cpu")
+ # self.device = torch.device("cpu")
+ self.batch_size = num_frames
+ self.num_joints = 22 # for HumanML3D
+ self.joint_category = "AMASS"
+ self.num_smplify_iters = 150
+ self.fix_foot = False
+ print(config.SMPL_MODEL_DIR)
+ smplmodel = smplx.create(config.SMPL_MODEL_DIR,
+ model_type="smpl", gender="neutral", ext="pkl",
+ batch_size=self.batch_size).to(self.device)
+
+ # ## --- load the mean pose as original ----
+ smpl_mean_file = config.SMPL_MEAN_FILE
+
+ file = h5py.File(smpl_mean_file, 'r')
+ self.init_mean_pose = torch.from_numpy(file['pose'][:]).unsqueeze(0).repeat(self.batch_size, 1).float().to(self.device)
+ self.init_mean_shape = torch.from_numpy(file['shape'][:]).unsqueeze(0).repeat(self.batch_size, 1).float().to(self.device)
+ self.cam_trans_zero = torch.Tensor([0.0, 0.0, 0.0]).unsqueeze(0).to(self.device)
+ #
+
+ # # #-------------initialize SMPLify
+ self.smplify = SMPLify3D(smplxmodel=smplmodel,
+ batch_size=self.batch_size,
+ joints_category=self.joint_category,
+ num_iters=self.num_smplify_iters,
+ device=self.device)
+
+
+ def npy2smpl(self, npy_path):
+ out_path = npy_path.replace('.npy', '_rot.npy')
+ motions = np.load(npy_path, allow_pickle=True)[None][0]
+ # print_batch('', motions)
+ n_samples = motions['motion'].shape[0]
+ all_thetas = []
+ for sample_i in tqdm(range(n_samples)):
+ thetas, _ = self.joint2smpl(motions['motion'][sample_i].transpose(2, 0, 1)) # [nframes, njoints, 3]
+ all_thetas.append(thetas.cpu().numpy())
+ motions['motion'] = np.concatenate(all_thetas, axis=0)
+ print('motions', motions['motion'].shape)
+
+ print(f'Saving [{out_path}]')
+ np.save(out_path, motions)
+ exit()
+
+
+
+ def joint2smpl(self, input_joints, init_params=None):
+ _smplify = self.smplify # if init_params is None else self.smplify_fast
+ pred_pose = torch.zeros(self.batch_size, 72).to(self.device)
+ pred_betas = torch.zeros(self.batch_size, 10).to(self.device)
+ pred_cam_t = torch.zeros(self.batch_size, 3).to(self.device)
+ keypoints_3d = torch.zeros(self.batch_size, self.num_joints, 3).to(self.device)
+
+ # run the whole seqs
+ num_seqs = input_joints.shape[0]
+
+
+ # joints3d = input_joints[idx] # *1.2 #scale problem [check first]
+ keypoints_3d = torch.Tensor(input_joints).to(self.device).float()
+
+ # if idx == 0:
+ if init_params is None:
+ pred_betas = self.init_mean_shape
+ pred_pose = self.init_mean_pose
+ pred_cam_t = self.cam_trans_zero
+ else:
+ pred_betas = init_params['betas']
+ pred_pose = init_params['pose']
+ pred_cam_t = init_params['cam']
+
+ if self.joint_category == "AMASS":
+ confidence_input = torch.ones(self.num_joints)
+ # make sure the foot and ankle
+ if self.fix_foot == True:
+ confidence_input[7] = 1.5
+ confidence_input[8] = 1.5
+ confidence_input[10] = 1.5
+ confidence_input[11] = 1.5
+ else:
+ print("Such category not settle down!")
+
+ new_opt_vertices, new_opt_joints, new_opt_pose, new_opt_betas, \
+ new_opt_cam_t, new_opt_joint_loss = _smplify(
+ pred_pose.detach(),
+ pred_betas.detach(),
+ pred_cam_t.detach(),
+ keypoints_3d,
+ conf_3d=confidence_input.to(self.device),
+ # seq_ind=idx
+ )
+
+ thetas = new_opt_pose.reshape(self.batch_size, 24, 3)
+ thetas = geometry.matrix_to_rotation_6d(geometry.axis_angle_to_matrix(thetas)) # [bs, 24, 6]
+ root_loc = torch.tensor(keypoints_3d[:, 0]) # [bs, 3]
+ root_loc = torch.cat([root_loc, torch.zeros_like(root_loc)], dim=-1).unsqueeze(1) # [bs, 1, 6]
+ thetas = torch.cat([thetas, root_loc], dim=1).unsqueeze(0).permute(0, 2, 3, 1) # [1, 25, 6, 196]
+
+ return thetas.clone().detach(), {'pose': new_opt_joints[0, :24].flatten().clone().detach(), 'betas': new_opt_betas.clone().detach(), 'cam': new_opt_cam_t.clone().detach()}
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--input_path", type=str, required=True, help='Blender file or dir with blender files')
+ parser.add_argument("--cuda", type=bool, default=True, help='')
+ parser.add_argument("--device", type=int, default=0, help='')
+ params = parser.parse_args()
+
+ simplify = joints2smpl(device_id=params.device, cuda=params.cuda)
+
+ if os.path.isfile(params.input_path) and params.input_path.endswith('.npy'):
+ simplify.npy2smpl(params.input_path)
+ elif os.path.isdir(params.input_path):
+ files = [os.path.join(params.input_path, f) for f in os.listdir(params.input_path) if f.endswith('.npy')]
+ for f in files:
+ simplify.npy2smpl(f)
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/t2p/visualize/vis_utils.py b/MuseV/MMCM/mmcm/t2p/visualize/vis_utils.py
new file mode 100755
index 0000000000000000000000000000000000000000..7fd996437b24c4a93725260c61676005167ee54a
--- /dev/null
+++ b/MuseV/MMCM/mmcm/t2p/visualize/vis_utils.py
@@ -0,0 +1,66 @@
+from ..model.rotation2xyz import Rotation2xyz
+import numpy as np
+from trimesh import Trimesh
+import os
+import torch
+from .visualize.simplify_loc2rot import joints2smpl
+
+class npy2obj:
+ def __init__(self, npy_path, sample_idx, rep_idx, device=0, cuda=True):
+ self.npy_path = npy_path
+ self.motions = np.load(self.npy_path, allow_pickle=True)
+ if self.npy_path.endswith('.npz'):
+ self.motions = self.motions['arr_0']
+ self.motions = self.motions[None][0]
+ self.rot2xyz = Rotation2xyz(device='cpu')
+ self.faces = self.rot2xyz.smpl_model.faces
+ self.bs, self.njoints, self.nfeats, self.nframes = self.motions['motion'].shape
+ self.opt_cache = {}
+ self.sample_idx = sample_idx
+ self.total_num_samples = self.motions['num_samples']
+ self.rep_idx = rep_idx
+ self.absl_idx = self.rep_idx*self.total_num_samples + self.sample_idx
+ self.num_frames = self.motions['motion'][self.absl_idx].shape[-1]
+ self.j2s = joints2smpl(num_frames=self.num_frames, device_id=device, cuda=cuda)
+
+ if self.nfeats == 3:
+ print(f'Running SMPLify For sample [{sample_idx}], repetition [{rep_idx}], it may take a few minutes.')
+ motion_tensor, opt_dict = self.j2s.joint2smpl(self.motions['motion'][self.absl_idx].transpose(2, 0, 1)) # [nframes, njoints, 3]
+ self.motions['motion'] = motion_tensor.cpu().numpy()
+ elif self.nfeats == 6:
+ self.motions['motion'] = self.motions['motion'][[self.absl_idx]]
+ self.bs, self.njoints, self.nfeats, self.nframes = self.motions['motion'].shape
+ self.real_num_frames = self.motions['lengths'][self.absl_idx]
+
+ self.vertices = self.rot2xyz(torch.tensor(self.motions['motion']), mask=None,
+ pose_rep='rot6d', translation=True, glob=True,
+ jointstype='vertices',
+ # jointstype='smpl', # for joint locations
+ vertstrans=True)
+ self.root_loc = self.motions['motion'][:, -1, :3, :].reshape(1, 1, 3, -1)
+ self.vertices += self.root_loc
+
+ def get_vertices(self, sample_i, frame_i):
+ return self.vertices[sample_i, :, :, frame_i].squeeze().tolist()
+
+ def get_trimesh(self, sample_i, frame_i):
+ return Trimesh(vertices=self.get_vertices(sample_i, frame_i),
+ faces=self.faces)
+
+ def save_obj(self, save_path, frame_i):
+ mesh = self.get_trimesh(0, frame_i)
+ with open(save_path, 'w') as fw:
+ mesh.export(fw, 'obj')
+ return save_path
+
+ def save_npy(self, save_path):
+ data_dict = {
+ 'motion': self.motions['motion'][0, :, :, :self.real_num_frames],
+ 'thetas': self.motions['motion'][0, :-1, :, :self.real_num_frames],
+ 'root_translation': self.motions['motion'][0, -1, :3, :self.real_num_frames],
+ 'faces': self.faces,
+ 'vertices': self.vertices[0, :, :, :self.real_num_frames],
+ 'text': self.motions['text'][0],
+ 'length': self.real_num_frames,
+ }
+ np.save(save_path, data_dict)
diff --git a/MuseV/MMCM/mmcm/text/__init__.py b/MuseV/MMCM/mmcm/text/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/text/feature_extractor/__init__.py b/MuseV/MMCM/mmcm/text/feature_extractor/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/text/feature_extractor/clip_text_extractor.py b/MuseV/MMCM/mmcm/text/feature_extractor/clip_text_extractor.py
new file mode 100755
index 0000000000000000000000000000000000000000..80faa344f2b26389d07ffd7f6717bbff5c41aeee
--- /dev/null
+++ b/MuseV/MMCM/mmcm/text/feature_extractor/clip_text_extractor.py
@@ -0,0 +1,98 @@
+import sys
+from multiprocessing.pool import Pool
+import os
+import logging
+from typing import Union, List, Tuple
+
+import torch
+import numpy as np
+import pandas as pd
+import h5py
+import diffusers
+from diffusers import AutoencoderKL
+from diffusers.image_processor import VaeImageProcessor
+from einops import rearrange
+from PIL import Image
+from transformers import CLIPTextModel, CLIPTokenizer
+
+from ...data.extract_feature.base_extract_feature import BaseFeatureExtractor
+
+from .save_text_emb import save_text_emb_with_h5py
+
+
+class ClipTextFeatureExtractor(BaseFeatureExtractor):
+ def __init__(
+ self,
+ pretrained_model_name_or_path: str,
+ device: str = "cpu",
+ dtype: torch.dtype = None,
+ name: str = "CLIPEncoderLayer",
+ ):
+ super().__init__(device, dtype, name)
+ self.pretrained_model_name_or_path = pretrained_model_name_or_path
+ self.tokenizer = CLIPTokenizer.from_pretrained(
+ pretrained_model_name_or_path, subfolder="tokenizer"
+ )
+ text_encoder = CLIPTextModel.from_pretrained(
+ pretrained_model_name_or_path, subfolder="text_encoder"
+ )
+ text_encoder.requires_grad_(False)
+ self.text_encoder = text_encoder.to(device=device, dtype=dtype)
+
+ def extract(
+ self,
+ text: Union[str, List[str]],
+ return_type: str = "numpy",
+ save_emb_path: str = None,
+ save_type: str = "h5py",
+ text_emb_key: str = None,
+ text_key: str = "text",
+ text_tuple_length: int = 20,
+ text_index: int = 0,
+ insert_name_to_key: bool = False,
+ ) -> Union[np.ndarray, torch.Tensor]:
+ if text_emb_key is not None:
+ text_emb_key = f"{text_emb_key}_{text_index}"
+ if self.name is not None and insert_name_to_key:
+ if text_emb_key is not None:
+ text_emb_key = f"{self.name}_{text_emb_key}"
+ text_inputs = self.tokenizer(
+ text,
+ max_length=self.tokenizer.model_max_length,
+ padding="max_length",
+ truncation=True,
+ return_tensors="pt",
+ )
+ text_input_ids = text_inputs.input_ids
+ if (
+ hasattr(self.text_encoder.config, "use_attention_mask")
+ and self.text_encoder.config.use_attention_mask
+ ):
+ attention_mask = text_inputs.attention_mask.to(self.device)
+ else:
+ attention_mask = None
+ # transformers.modeling_outputs.BaseModelOutputWithPooling
+ # 'last_hidden_state', 'pooler_output'
+ # we choose the first
+ print()
+ text_embeds = self.text_encoder(
+ text_input_ids.to(device=self.device),
+ attention_mask=attention_mask,
+ )[0]
+
+ if return_type == "numpy":
+ text_embeds = text_embeds.cpu().numpy()
+ if save_emb_path is None:
+ return text_embeds
+ else:
+ if save_type == "h5py":
+ save_text_emb_with_h5py(
+ path=save_emb_path,
+ emb=text_embeds,
+ text_emb_key=text_emb_key,
+ text=text,
+ text_key=text_key,
+ text_tuple_length=text_tuple_length,
+ text_index=text_index,
+ )
+ return text_embeds
diff --git a/MuseV/MMCM/mmcm/text/feature_extractor/save_text_emb.py b/MuseV/MMCM/mmcm/text/feature_extractor/save_text_emb.py
new file mode 100755
index 0000000000000000000000000000000000000000..e85e82be9ccffb5e75dd6572a3e08c8315fc39ac
--- /dev/null
+++ b/MuseV/MMCM/mmcm/text/feature_extractor/save_text_emb.py
@@ -0,0 +1,28 @@
+from typing import Union
+
+import h5py
+import numpy as np
+
+from ...data.emb.h5py_emb import save_value_with_h5py
+
+
+def save_text_emb_with_h5py(
+ path: str,
+ emb: Union[np.ndarray, None] = None,
+ text_emb_key: str = None,
+ text: str = None,
+ text_key: str = "text",
+ text_tuple_length: int = 20,
+ text_index: int = 0,
+) -> None:
+ if emb is not None:
+ save_value_with_h5py(path, value=emb, key=text_emb_key)
+ if text is not None:
+ save_value_with_h5py(
+ path,
+ key=text_key,
+ value=text,
+ shape=(text_tuple_length,),
+ dtype=h5py.string_dtype(encoding="utf-8"),
+ idx=text_index,
+ )
diff --git a/MuseV/MMCM/mmcm/text/taiyi/__init__.py b/MuseV/MMCM/mmcm/text/taiyi/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/text/taiyi/taiyi_predictor.py b/MuseV/MMCM/mmcm/text/taiyi/taiyi_predictor.py
new file mode 100755
index 0000000000000000000000000000000000000000..b4ea0c3026727c375d3001e21a89ac41b8e1794f
--- /dev/null
+++ b/MuseV/MMCM/mmcm/text/taiyi/taiyi_predictor.py
@@ -0,0 +1,46 @@
+from typing import List, Tuple, Dict
+import os
+import time
+
+from tqdm import tqdm
+import torch
+import numpy as np
+from numpy import ndarray
+from PIL import Image
+from transformers import BertForSequenceClassification, BertTokenizer, CLIPProcessor, CLIPModel
+
+
+
+class TextFeatureExtractor(object):
+ def __init__(self, language_model_path: str, local_file: bool=True, device: str='cpu'):
+ if device:
+ self.device = device
+ else:
+ self.device = 'cuda' if torch.cuda.is_available() else 'cpu'
+ language_model_path = "Taiyi-CLIP-Roberta-large-326M-Chinese" if local_file else "IDEA-CCNL/Taiyi-CLIP-Roberta-large-326M-Chinese"
+ self.text_tokenizer = BertTokenizer.from_pretrained(language_model_path, local_files_only=local_file)
+ self.text_encoder = BertForSequenceClassification.from_pretrained(language_model_path, local_files_only=local_file).eval().to(self.device)
+
+ def text(self, query_texts: List[str]) -> ndarray:
+ text = self.text_tokenizer(query_texts, return_tensors='pt', padding=True, truncation=True, max_length=self.text_encoder.config.max_length)['input_ids']
+ text = text.to(self.device)
+ with torch.no_grad():
+ text_features = self.text_encoder(text).logits
+ text_features = text_features / text_features.norm(dim=1, keepdim=True)
+ text_features = text_features.squeeze
+ return text_features.detach().cpu().numpy()
+
+
+class TaiyiFeatureExtractor(TextFeatureExtractor):
+ def __init__(self, language_model_path: str="Taiyi-CLIP-Roberta-large-326M-Chinese", local_file: bool = True, device: str = 'cpu'):
+ """_summary_
+
+ Args:
+ language_model_path (str, optional): Taiyi-CLIP-Roberta-large-326M-Chinese or IDEA-CCNL/Taiyi-CLIP-Roberta-large-326M-Chinese. Defaults to "Taiyi-CLIP-Roberta-large-326M-Chinese".
+ local_file (bool, optional): _description_. Defaults to True.
+ device (str, optional): _description_. Defaults to 'cpu'.
+ """
+ super().__init__(language_model_path, local_file, device)
+
+
+
diff --git a/MuseV/MMCM/mmcm/text/utils/__init__.py b/MuseV/MMCM/mmcm/text/utils/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/text/utils/read_text.py b/MuseV/MMCM/mmcm/text/utils/read_text.py
new file mode 100644
index 0000000000000000000000000000000000000000..a3134a15a927a4b1568352e85647f1a7db9cf5fa
--- /dev/null
+++ b/MuseV/MMCM/mmcm/text/utils/read_text.py
@@ -0,0 +1,17 @@
+# -*- coding: UTF-8 -*-
+
+"""
+__author__ = zhiqiangxia
+__date__ = 2020-04-15
+"""
+
+import xml.etree.ElementTree as ET
+import xmltodict
+
+
+def read_xml2json(path):
+ tree = ET.parse(path)
+ root = tree.getroot()
+ xmlstr = ET.tostring(root).decode()
+ dct = xmltodict.parse(xml_input=xmlstr)
+ return dct
diff --git a/MuseV/MMCM/mmcm/utils/__init__.py b/MuseV/MMCM/mmcm/utils/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..bd76a6fdd1195c2d83f4c80d2fa55818cc0ca6f4
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/__init__.py
@@ -0,0 +1,2 @@
+# -*- coding: UTF-8 -*-
+from .util import load_dct_from_file
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/utils/color_util.py b/MuseV/MMCM/mmcm/utils/color_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..9fd29147000735b2507428766618ac37c625dd39
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/color_util.py
@@ -0,0 +1,18 @@
+from typing import List, Union, Tuple
+
+class PolledColor(object):
+ def __init__(self, colors: Union[List[Tuple[int, int, int]], List[Tuple[str, str, str]]]) -> None:
+ """轮流返回候选颜色列表中的颜色
+
+ Args:
+ colors (list): 候选颜色列表
+ """
+ self.colors = colors
+ self.cnt = 0
+ self.n_color = len(colors)
+
+ @property
+ def color(self) -> Union[Tuple[int, int, int], Tuple[str, str, str]]:
+ color = self.colors[self.cnt % self.n_color]
+ self.cnt += 1
+ return color
diff --git a/MuseV/MMCM/mmcm/utils/compute_util.py b/MuseV/MMCM/mmcm/utils/compute_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..63528e635c5f25de34eef6db139ed189916c2aa7
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/compute_util.py
@@ -0,0 +1,19 @@
+from typing import List
+import numpy as np
+
+
+def weighted_sum(weights: List[float], datas: List[np.array]) -> np.array:
+ """对矩阵列表按照权重列表加权求和
+
+ Args:
+ weights (list): 权重列表
+ datas (list): 矩阵列表
+
+ Returns:
+ np.array: 加权求和后的矩阵
+ """
+ res = np.zeros(datas[0].shape)
+ n_data = len(datas)
+ for i in range(n_data):
+ res += datas[i] * weights[i] / n_data
+ return res
diff --git a/MuseV/MMCM/mmcm/utils/data_util.py b/MuseV/MMCM/mmcm/utils/data_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..7c3914a9959d59c1fb0c690bc828e54f2efe31ef
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/data_util.py
@@ -0,0 +1,85 @@
+from typing import List, Dict, Sequence, Union, Tuple, Any, Hashable
+
+import numpy as np
+
+
+def pick_subdct(src: Dict[Hashable, Any], target_keys: List[str] = None, ignored_keys: List[str] = None) -> Dict[Hashable, Any]:
+ """提取字典中的目标子字典
+
+ Args:
+ src (Dict[Hashable, Any]): 原字典
+ target_keys (List[str], optional): 目标key. Defaults to None.
+ ignored_keys (List[str], optional): 忽略的key. Defaults to None.
+
+ Returns:
+ Dict[Hashable, Any]: 子字典
+ """
+ dst = {}
+ if target_keys is not None:
+ for k in target_keys:
+ if k in src:
+ dst[k] = src[k]
+ if ignored_keys is not None:
+ for k in src:
+ if k not in ignored_keys:
+ dst[k] = src[k]
+ return dst
+
+
+def str2intlist(string: str, sep: str="_", range_sep: str=":", discrete_sep=",") -> List[int]:
+ """将1:2_3:4_5,6,7的字符串转化成整数索引列表,方便取子任务, 左闭右比
+
+ Args:
+ string (str): 输入字符串
+
+ Returns:
+ List: 转化后的整数列表
+ """
+ string = string.split(sep)
+ lst = []
+ for s in string:
+ if range_sep in s:
+ # 采用左闭、右闭方式
+ start, end = [int(x) for x in s.split(range_sep)]
+ sub_lst = range(start, end + 1)
+ else:
+ sub_lst = [int(x) for x in s.split(discrete_sep)]
+ lst.extend(sub_lst)
+ lst = sorted(set(lst))
+ return lst
+
+
+def dict_has_keys(dct: Dict[Hashable, Any], keys: List[Union[str, int]]) -> bool:
+ """嵌套字典是否有嵌套key
+
+ Args:
+ dct (Dict[Hashable, Any]): 有多层嵌套的字典
+ keys (List[Union[str, int]]): 字符串列表,从前往后表示嵌套字典key
+
+ Returns:
+ bool: dct是否有keys
+ """
+ if keys[0] not in dct:
+ # if not hasattr(dct, keys[0]):
+ return False
+ else:
+ if len(keys) == 1:
+ return True
+ else:
+ return dict_has_keys(dct[keys[0]], keys[1:])
+
+
+def dict_get_keys(dct: Dict[Hashable, Any], keys: List[Union[str, int]]) -> Any:
+ """根据索引列表获取嵌套字典的值
+
+ Args:
+ dct (Dict[Hashable, Any]): 嵌套字典
+ keys (List[Union[str, int]]): 用列表表示的嵌套索引
+
+ Returns:
+ Any: 嵌套索引keys对应的值
+ """
+ if len(keys) == 1:
+ return dct[keys[0]]
+ else:
+ return dict_get_keys(dct[keys[0]], keys[1:])
diff --git a/MuseV/MMCM/mmcm/utils/gpu_util.py b/MuseV/MMCM/mmcm/utils/gpu_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..dfacf60890d0fd2c7f1d1d97b2c7dddb4f455cce
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/gpu_util.py
@@ -0,0 +1,95 @@
+from typing import Union, List, Dict, Tuple, Literal
+
+import logging
+
+
+def convert_byte_unit(
+ value: float,
+ src_unit: Literal["b", "B", "KB", "MB", "GB", "TB"],
+ target_unit: Literal["b", "B", "KB", "MB", "GB", "TB"],
+) -> float:
+ """convert value in src_unit to target_unit. Firstlt, all src_unit to Byte, then to target_unit
+
+ Args:
+ value (float): _description_
+ src_unit (Literal["b", "B", "KB", "MB", "GB", "TB"]): _description_
+ target_unit (Literal["b", "B", "KB", "MB", "GB", "TB"]): _description_
+
+ Raises:
+ ValueError: _description_
+ ValueError: _description_
+
+ Returns:
+ float: _description_
+ """
+ if src_unit in ["b", "bit"]:
+ value = value / 8
+ elif src_unit in ["B", "Byte"]:
+ pass
+ elif src_unit == "KB":
+ value = value * 1024
+ elif src_unit == "MB":
+ value = value * 1024**2
+ elif src_unit == "GB":
+ value = value * (1024**3)
+ elif src_unit == "TB":
+ value = value * (1024**4)
+ else:
+ raise ValueError("src_unit is not valid")
+ if target_unit in ["b", "bit"]:
+ target_value = value * 8
+ elif target_unit in ["B", "Byte"]:
+ target_value = value
+ elif target_unit == "KB":
+ target_value = value / 1024
+ elif target_unit == "MB":
+ target_value = value / 1024**2
+ elif target_unit == "GB":
+ target_value = value / (1024**3)
+ elif target_unit == "TB":
+ target_value = value / (1024**4)
+ else:
+ raise ValueError("target_unit is not valid")
+ return target_value
+
+
+def get_gpu_status(unit="MB") -> List[Dict]:
+ import pynvml
+
+ try:
+ infos = []
+
+ # 初始化 pynvml
+ pynvml.nvmlInit()
+ # 获取 GPU 数量
+ deviceCount = pynvml.nvmlDeviceGetCount()
+
+ # 获取每个 GPU 的信息
+ for i in range(deviceCount):
+ gpu_info = {}
+ handle = pynvml.nvmlDeviceGetHandleByIndex(i)
+ info = pynvml.nvmlDeviceGetMemoryInfo(handle)
+ utilization = pynvml.nvmlDeviceGetUtilizationRates(handle)
+ gpu_name = pynvml.nvmlDeviceGetName(handle)
+ gpu_info = {
+ "gpu_name": gpu_name,
+ "total_memory": convert_byte_unit(
+ info.total, src_unit="B", target_unit=unit
+ ),
+ "used_memory": convert_byte_unit(
+ info.used, src_unit="B", target_unit=unit
+ ),
+ "used_memory_ratio": info.used / info.total,
+ "gpu_utilization": utilization.gpu,
+ "free_memory_ratio": info.free / info.total,
+ "free_memory": convert_byte_unit(
+ info.free, src_unit="B", target_unit=unit
+ ),
+ }
+ infos.append(gpu_info)
+ # 释放 pynvml
+ pynvml.nvmlShutdown()
+ except Exception as e:
+ print("get_gpu_status failed")
+ logging.exception(e)
+ return infos
diff --git a/MuseV/MMCM/mmcm/utils/itertools_util.py b/MuseV/MMCM/mmcm/utils/itertools_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..37c580d3bc485473d8bc6a9628c74bdd072116bc
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/itertools_util.py
@@ -0,0 +1,91 @@
+from typing import Any, List, Union, Sequence, Tuple
+
+import numpy as np
+
+
+def generate_sample_idxs(
+ total: int,
+ window_size: int,
+ step: int,
+ sample_rate: int = 1,
+ drop_last: bool = False,
+ max_num_per_window: int = None,
+) -> List[List[int]]:
+ """generate sample idxs list by given relate parameters
+
+ Args:
+ total (int): total num of sampling source
+ window_size (int):
+ step (int): _description_
+ sample_rate (int, optional): _description_. Defaults to 1.
+ drop_last (bool, optional): wthether drop the last, if not enough for window_size. Defaults to False.
+
+ Returns:
+ List[List[int]]: sample idx list
+ """
+ idxs = range(total)
+ idxs = [idx for i, idx in enumerate(idxs) if i % sample_rate == 0]
+ sample_idxs = []
+ new_total = len(idxs)
+ last_idx = new_total - 1
+ window_start = 0
+ while window_start < new_total:
+ window_end = window_start + window_size
+ window = idxs[window_start:window_end]
+ if max_num_per_window is not None and len(window) > max_num_per_window:
+ window = uniform_sample_subseq(
+ window, max_num=max_num_per_window, need_index=False
+ )
+ if window_end > new_total and drop_last:
+ break
+ else:
+ sample_idxs.append(window)
+ window_start += step
+ return sample_idxs
+
+
+def overlap2step(overlap: Union[int, float], window_size: int) -> int:
+ if isinstance(overlap, int):
+ step = window_size - overlap
+ elif isinstance(overlap, float):
+ if overlap <= 0:
+ raise ValueError(f"relative overlap should be > 0, but given{overlap}")
+ overlap = int(overlap * window_size)
+ else:
+ raise ValueError(
+ f"overlap only support int(>0) or float(>0), but given {overlap} type({type(overlap)})"
+ )
+ return step
+
+
+def step2overlap(step: int, window_size: int) -> int:
+ overlap = window_size - step
+ return overlap
+
+
+def uniform_sample_subseq(
+ seq: Sequence, max_num: int, need_index: bool = False
+) -> Union[Sequence, Tuple[Sequence, Sequence]]:
+ n_seq = len(seq)
+ sample_num = min(n_seq, max_num)
+ if n_seq <= max_num:
+ if need_index:
+ return seq, list(range(n_seq))
+ else:
+ return seq
+ idx = sorted(list(set(np.linspace(0, n_seq - 1, dtype=int))))
+ subseq = [seq[i] for i in idx]
+ if need_index:
+ return subseq, idx
+ else:
+ return subseq
+
+
+def convert_list_flat2nest(
+ seq: Sequence,
+ window: int,
+) -> List[List[Any]]:
+ n_seq = len(seq)
+ n_lst = n_seq // window + int(n_seq % window > 0)
+ res = [seq[i * window : (i + 1) * window] for i in range(n_lst)]
+ return res
diff --git a/MuseV/MMCM/mmcm/utils/load_util.py b/MuseV/MMCM/mmcm/utils/load_util.py
new file mode 100644
index 0000000000000000000000000000000000000000..7fe6a655adeb11f2fc2b4b715d748c3863b96eb1
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/load_util.py
@@ -0,0 +1,34 @@
+import json
+import yaml
+import importlib
+
+
+def load_dct_from_file(path, obj_name=None):
+ if path.endswith(".json"):
+ dct = load_json(path)
+ elif path.endswith(".yaml"):
+ dct = load_yaml(path)
+ elif path.endswith(".py"):
+ dct = load_edct_py(path, obj_name)
+ else:
+ raise ValueError("unsupported config file")
+ return dct
+
+
+def load_json(path):
+ with open(path, "r") as f:
+ dct = json.load(f)
+ return dct
+
+
+def load_yaml(path):
+ dct = yaml.load(path)
+ return dct
+
+
+def load_pyhon_obj(path, obj_name):
+ module_name = "module_name"
+ spec = importlib.util.spec_from_file_location(module_name, path)
+ module = importlib.util.module_from_spec(spec)
+ spec.loader.exec_module(module)
+ return getattr(module, obj_name)
diff --git a/MuseV/MMCM/mmcm/utils/path_util.py b/MuseV/MMCM/mmcm/utils/path_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..bbccf9fba49d8d331be2995039e4d748430cccd7
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/path_util.py
@@ -0,0 +1,69 @@
+import os
+from typing import Tuple, Callable, Dict
+from functools import partial
+
+
+def get_file_name_ext(basename: str) -> Tuple[str, str]:
+ """分离文件名和后缀,适用于复杂命名的分离,目前支持
+ 含.的名字
+
+ Args:
+ basename (str): xx.xxx.xx.ext
+
+ Returns:
+ Tuple[str, str]: name, ext
+ """
+ ext = basename.split(".")[-1]
+ name = ".".join(basename.split(".")[:-1])
+ return name, ext
+
+
+def get_dir_file_map(
+ path, split_func=None, filter_func: Callable = None, exts: list = None
+) -> dict:
+ """遍历目标文件夹及子文件夹下所有符合后缀目标的文件,生成字典。
+ split_func 可以用于对文件名做处理生成想要的字典key。
+
+ Args:
+ path (str): 目标文件夹
+ split_func (__call__, optional): 可以用于对文件名做处理生成想要的字典key。. Defaults to None.
+ exts (list, optional): 目标文件后缀, 例如["mp3", "json"]. Defaults to None.
+
+ Returns:
+ dict: key是处理后的文件名,值是绝对路径
+ """
+ dct = {}
+ for rootdir, dirnames, basenames in os.walk(path):
+ for basename in basenames:
+ path = os.path.join(rootdir, basename)
+ if filter_func is not None:
+ if not filter_func(path):
+ continue
+ if split_func is None:
+ ext = basename.split(".")[-1]
+ filename = ".".join(basename.split(".")[:-1])
+ else:
+ filename, ext = split_func(basename)
+ if exts is None:
+ dct[filename] = path
+ else:
+ if ext.lower() in exts:
+ dct[filename] = path
+ return dct
+
+
+def get_path_dct(path, exts, mode: int=1, split_func: Callable=None, sep: str="@") -> Dict[str, str]:
+ """遍历目标文件夹及子文件夹下所有视频文件,生成字典。"""
+ if mode == 1:
+ dct = get_dir_file_map(path, exts=exts)
+ elif mode == 2:
+ dct = get_dir_file_map(path, split_func=split_func, exts=exts)
+ elif mode== 3:
+ dct = get_path_dct(path, mode=1, sep=sep, exts=exts)
+ dct2 = get_path_dct(path, mode=2, sep=sep, split_func=split_func, exts=exts)
+ dct.update(**dct2)
+ else:
+ raise ValueError("only support mode 1, 2, 3")
+ return dct
+
+
diff --git a/MuseV/MMCM/mmcm/utils/process_util.py b/MuseV/MMCM/mmcm/utils/process_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..5dd189f22aa8ebfd522b7c79e62f812d5951926b
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/process_util.py
@@ -0,0 +1,97 @@
+from multiprocessing import Pool, Process, Value, Lock, Pool
+from threading import Thread
+from multiprocessing.pool import ThreadPool
+from typing import List, Callable, Any, Tuple
+import multiprocessing as mp
+
+
+from functools import partial
+
+
+def run_task_in_parallel(
+ worker: Callable,
+ tasks: List[Any],
+ num: int = 1,
+ process_type: str = "process",
+ use_counter: bool = False,
+ print_freq: int = 100,
+) -> Tuple[List, None]:
+ """并行运行任务的设置
+
+ Args:
+ worker (func): 工作函数
+ tasks (iterator): 任务队列
+ num (int, optional): 并行处理核数量. Defaults to 1.
+ process_type (str, optional): 并行处理类型,process or thread. Defaults to "process".
+ use_counter (bool, optional): 是否使用全局计数器. Defaults to False.
+ print_freq (int, optional): 打印计算进展. Defaults to 100.q
+ """
+ results = []
+ n_task = len(tasks)
+ if num == 1:
+ for i, task in enumerate(tasks):
+ result = worker(task)
+ results.append(result)
+ if use_counter:
+ if i % print_freq == 0:
+ print(f"finished {n_task}/{i} tasks")
+ else:
+ if use_counter:
+ raise NotImplementedError(
+ "not supported counter for multiprocess/multithread"
+ )
+ process_cls = Pool if process_type == "process" else ThreadPool
+ with process_cls(num) as p:
+ results = p.map(worker, tasks)
+ return results
+
+
+def prepare_task(tasks, queue, lock):
+ for i, task in enumerate(tasks):
+ with lock:
+ if i % 100 == 0:
+ # if i % 1 == 0:
+ print("prepare task: ", i, task)
+ queue.put(task)
+
+
+def worker_task(worker, queue, lock, counter):
+ while True:
+ with lock:
+ task = queue.get()
+ counter.value += 1
+ print("finish task: ", counter.value, task)
+ if task is None:
+ break
+ worker.do_task(task)
+
+
+def run_pipeline(worker_class, tasks, n_process=4):
+ # lock = mp.Lock()
+ # 用不上却会影响死锁?
+ manager = mp.Manager()
+ # lock = manager.Lock()
+ # queue = manager.Queue()
+ # counter = manager.Value("i", 0)
+ lock = mp.Lock()
+ queue = mp.Queue()
+ counter = mp.Value("i", 0)
+ prepare_process = mp.Process(target=prepare_task, args=(tasks, queue, lock))
+ prepare_process.start()
+ worker_processes = []
+ for i in range(n_process): # number of worker processes
+ worker = worker_class()
+ worker_process = mp.Process(
+ target=worker_task, args=(worker, queue, lock, counter)
+ )
+ worker_process.start()
+ worker_processes.append(worker_process)
+
+ prepare_process.join()
+ # queue.join()
+
+ for i in range(n_process): # number of worker processes
+ queue.put(None)
+
+ for worker_process in worker_processes:
+ worker_process.join()
diff --git a/MuseV/MMCM/mmcm/utils/rainbow_util.py b/MuseV/MMCM/mmcm/utils/rainbow_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..0dc685693fa59e15f4037ce3e4278a4f9da07f1f
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/rainbow_util.py
@@ -0,0 +1,18 @@
+# -*- coding: utf8 -*-
+from typing import Any
+
+
+def load_rainbow_config(
+ app_id: str, user_id: str, secret_key: str, group: str, env_name: str = "Default"
+) -> Any:
+ from rainbow_sdk.rainbow_client import RainbowClient
+
+ init_param = {
+ "connectStr": "api.rainbow.oa.com:8080",
+ "isUsingFileCache": False,
+ "fileCachePath": "/data/rainbow/",
+ "tokenConfig": {"app_id": app_id, "user_id": user_id, "secret_key": secret_key},
+ }
+ rc = RainbowClient(init_param)
+ res = rc.get_configs_v3(group, env_name=env_name)
+ return res["data"]
diff --git a/MuseV/MMCM/mmcm/utils/register.py b/MuseV/MMCM/mmcm/utils/register.py
new file mode 100755
index 0000000000000000000000000000000000000000..101f332c49a4d22e84d7b87dc9f7565a96fb2ee1
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/register.py
@@ -0,0 +1,46 @@
+from typing import Any, List
+
+import logging
+
+logger = logging.getLogger(__name__) # pylint: disable=invalid-name
+
+
+class Register:
+ def __init__(self, registry_name: str):
+ self._dict = {}
+ self._name = registry_name
+
+ def __setitem__(self, key: str, value: Any) -> None:
+ if not callable(value):
+ raise Exception(f"Value of a Registry must be a callable!\nValue: {value}")
+ # 优先使用自定义的name,其次使用类名或者函数名。
+ if "name" in value.__dict__:
+ key = value.name
+ elif key is None:
+ key = value.__name__
+ if key in self._dict:
+ logger.warning("Key %s already in registry %s." % (key, self._name))
+ self._dict[key] = value
+
+ def register(self, target: str) -> Any:
+ """Decorator to register a function or class."""
+
+ def add(key, value):
+ self[key] = value
+ return value
+
+ if callable(target):
+ # @reg.register
+ return add(None, target)
+ # @reg.register('alias')
+ return lambda x: add(target, x)
+
+ def __getitem__(self, key: str) -> Any:
+ return self._dict[key]
+
+ def __contains__(self, key: str) -> bool:
+ return key in self._dict
+
+ def keys(self) -> List[str]:
+ """key"""
+ return self._dict.keys()
diff --git a/MuseV/MMCM/mmcm/utils/seed_util.py b/MuseV/MMCM/mmcm/utils/seed_util.py
new file mode 100644
index 0000000000000000000000000000000000000000..0954fd88ac9555a18b898ed56c54c2036f0bf768
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/seed_util.py
@@ -0,0 +1,16 @@
+from typing import Tuple
+import os, random
+
+import numpy as np
+import torch
+
+
+def set_all_seed(seed: int) -> Tuple[torch.Generator, torch.Generator]:
+ random.seed(seed)
+ os.environ["PYTHONHASHSEED"] = str(seed)
+ np.random.seed(seed)
+ cpu_generator = torch.Generator("cpu").manual_seed(seed)
+ gpu_generator = torch.Generator("cuda").manual_seed(seed)
+ torch.backends.cudnn.deterministic = True
+ torch.backends.cudnn.benchmark = True
+ return cpu_generator, gpu_generator
diff --git a/MuseV/MMCM/mmcm/utils/signature.py b/MuseV/MMCM/mmcm/utils/signature.py
new file mode 100755
index 0000000000000000000000000000000000000000..21b0ae5092144e7443b7559f38be6ee1b4839e77
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/signature.py
@@ -0,0 +1,66 @@
+from typing import Union, List
+
+import hashlib
+import os
+
+
+def get_md5sum(data: str, length: int = None, blocksize: int=2**23) -> str:
+ """获取文件的hash值前几位作为文件唯一标识符
+
+ Args:
+ path (str): 文件路径
+ length (int, optional): hash前多少位. Defaults to None.
+ blocksize (int, optional):分块读取,块的大小. Defaults to None.
+
+ Returns:
+ str: hash值前length位
+ """
+ if isinstance(data, str):
+ if os.path.isfile(data):
+ signature = get_md5sum_of_file(path=data, length=length, blocksize=blocksize)
+ else:
+ signature = get_signature_of_string(data, length=length)
+ else:
+ raise ValueError(
+ "only support str or file path str, but given {}".format(type(data))
+ )
+ return signature
+
+
+def get_md5sum_of_file(path: str, length: int = None, blocksize: int=2**23) -> str:
+ """获取文件的hash值前几位作为文件唯一标识符
+
+ Args:
+ path (str): 文件路径
+ length (int, optional): hash前多少位. Defaults to None.
+ blocksize (int, optional):分块读取,块的大小. Defaults to None.
+
+ Returns:
+ str: hash值前length位
+ """
+
+ # sig = (os.popen('md5sum {}'.format(path))).readlines()[0].split(' ')[0]
+ m = hashlib.md5()
+ with open(path, "rb") as f:
+ while chunk := f.read(blocksize):
+ m.update(chunk)
+ sig = m.hexdigest()
+ if length is not None:
+ sig = sig[:length]
+ return sig
+
+
+def get_signature_of_string(string: str, length: int = None) -> str:
+ """cal signature of string
+
+ Args:
+ string (str): target string
+ length (int, optional): only return the first length character of signature. Defaults to None.
+
+ Returns:
+ str: signature of string
+ """
+ sig = hashlib.md5(string.encode()).hexdigest()
+ if length is not None:
+ sig = sig[:length]
+ return sig
diff --git a/MuseV/MMCM/mmcm/utils/str_util.py b/MuseV/MMCM/mmcm/utils/str_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..4fe3ff7849e26766f55b20ffd8b1b703ddaf2b1a
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/str_util.py
@@ -0,0 +1,53 @@
+from typing import List
+
+import re
+
+
+def has_key_brace(string: str) -> bool:
+ """检测字符串中是否含有{x}。
+ 注意,不是检测是否有{}
+
+ Args:
+ string (str):
+
+ Returns:
+ bool:
+ """
+ flag = re.search("\{.+\}", string)
+ flag = flag is not None
+ return flag
+
+
+def merge_near_same_char(string: str, target_char=", ") -> str:
+ """合并连续不变的指定字符为1个。如 `1,2,,3,,,4`合并成`1,2,3`
+
+ Args:
+ string (str): 待处理的字符串
+ target_char (str, optional): 指定的连续字符. Defaults to ",".
+
+ Returns:
+ str: 处理后的字符串
+ """
+ string = re.sub("({}*)+".format(target_char), target_char, string)
+ return string
+
+
+def get_word_from_key_brace_string(string: str, start="{", end="}") -> List:
+ """从含有`{key}`的模板字符串中 获取所有的关键词`key`
+
+ Args:
+ string (str): 含有`{key}`的模板字符串
+
+ Returns:
+ List: 所有关键词 key 列表
+ """
+ words = re.findall(f"{start}[^{start}|^{end}]+{end}", string)
+ words = [word[len(start) : -len(end)] for word in words]
+ return words
+
+
+def clean_str_for_save(string: str, disallowed_chars: List = None):
+ if disallowed_chars is None:
+ disallowed_chars = r'[\\/:*?"<>|]'
+ cleaned_filename = re.sub(disallowed_chars, "", string)
+ return cleaned_filename
diff --git a/MuseV/MMCM/mmcm/utils/table_util.py b/MuseV/MMCM/mmcm/utils/table_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..cf2c2f48b466d40692afd4dc3e2b4ee5c589687a
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/table_util.py
@@ -0,0 +1,239 @@
+import io
+from typing import List, Dict, Tuple, BinaryIO
+from copy import deepcopy
+
+import pandas as pd
+from PIL import Image
+from xlsxwriter.utility import xl_col_to_name
+
+def read_image_data(path: str, target_image_height: int) -> Tuple[BinaryIO, int, int]:
+ """读取图像,按照目标高做resize处理,并转化成二进制格式,返回最终图像的宽和高
+
+ Args:
+ path (str): 图像路径
+ target_image_height (int): 目标高
+
+ Returns:
+ Tuple[BinaryIO, int, int]: 图像二进制格式,返回最终图像的宽和高
+ """
+ image = Image.open(path)
+ image_width_in_excel = int(image.width / (image.height / target_image_height))
+ image = image.resize(size=(image_width_in_excel, target_image_height))
+ image_byte = io.BytesIO()
+ image.save(image_byte, format="png")
+ return image_byte, image.width, image.height
+
+
+def set_text_column_dynamic_width(worksheet, df, format, default_width=50):
+ """将df在excel workshhet中的列按照实际内容长度设置列宽以及文本格式
+
+ Args:
+ worksheet (_type_): 待处理的excel worksheet
+ df (_type_): worksheet中原来对应的DataFrame格式
+ format (_type_): 对应列的文本格式
+ default_width (int, optional): 默认目标宽度. Defaults to 50.
+ """
+ for column in df:
+ column_width = max(df[column].astype(str).map(len).max(), len(column))
+ col_idx = df.columns.get_loc(column)
+ width = min(column_width, default_width)
+ worksheet.set_column(col_idx, col_idx, width, format)
+
+
+def convert_tasks2clean(tasks):
+ tasks = [{"prompt": task["prompt"]} for task in tasks]
+ return tasks
+
+
+def split_tasks_by_images_lst(tasks, save_images_path_key: str = "save_images_path"):
+ new_tasks = []
+ for task in tasks:
+ for image_path in task[save_images_path_key]:
+ new_task = deepcopy(task)
+ new_task[save_images_path_key] = image_path
+ new_tasks.append(new_task)
+ return new_tasks
+
+
+def save_texts_images_2_csv(tasks: List[Dict], save_path: str):
+ """存储相关结果为csv表格
+
+ tasks (List[Dict]): 待转换的字典列表
+ save_path (str): 表格存储路径
+ """
+ df = pd.DataFrame(tasks)
+ df.to_csv(save_path, encoding="utf_8_sig", index=False)
+
+
+def add_multi_data_validation(workbook, worksheet, validates, validate_idxs, n_rows):
+ for i, validate in enumerate(validates):
+ validate_idx = validate_idxs[i]
+ worksheet = add_data_validation(
+ workbook=workbook,
+ worksheet=worksheet,
+ col=validate_idx,
+ head=validate["col_name"],
+ candidates=validate["candidates"],
+ colors=validate["colors"],
+ n_rows=n_rows,
+ )
+ return worksheet
+
+
+def add_data_validation(
+ workbook, worksheet, col: int, head, candidates, n_rows, colors
+):
+ col = xl_col_to_name(col)
+ # Adding the header and Datavalidation list
+ worksheet.write('{}1'.format(col), head)
+ colors_fmt = [workbook.add_format({'bg_color': color}) for color in colors]
+ for row in range(n_rows):
+ cell_idx = '{}{}'.format(col, row + 2)
+ worksheet.data_validation(cell_idx, {'validate': 'list', 'source': candidates})
+ for i_c in range(len(candidates)):
+ worksheet.conditional_format(
+ cell_idx,
+ {
+ 'type': 'formula',
+ 'criteria': '=${}=\"{}\"'.format(cell_idx, candidates[i_c]),
+ 'format': colors_fmt[i_c],
+ },
+ )
+ return worksheet
+
+
+def insert_cell_image(
+ worksheet,
+ row,
+ col,
+ image_path,
+ image_height_in_table,
+ text_format,
+ row_ratio,
+ col_ratio,
+):
+ image_byte, new_image_width, new_image_height = read_image_data(
+ image_path, target_image_height=image_height_in_table
+ )
+ # TODO:现在的图像列并不是预期内的和图像等宽,而是宽了很多
+ worksheet.set_column(
+ col,
+ col,
+ int(new_image_width / col_ratio),
+ )
+ worksheet.insert_image(
+ row,
+ col,
+ image_path,
+ {"image_data": image_byte},
+ )
+ worksheet.set_row(row, int(new_image_height / row_ratio), text_format)
+ return worksheet
+
+
+def save_texts_images_2_excel(
+ tasks: List[Dict],
+ save_path: str,
+ image_height_in_table: int = 120,
+ row_ratio: float = 1.3,
+ col_ratio: float = 5,
+ validates: List = None,
+):
+ """将任务列表和生成的图像统一存储在表格中,方便观看对比实验结果。
+
+ Args:
+ tasks (List[Dict]): 待转换的字典列表
+ save_path (str): 表格存储路径
+ image_height_in_table (int, optional): 表格中缩略图的高. Defaults to 120.
+ row_ratio (float, optional): excel的单元格宽高和实际图像边长需要做比例转换. Defaults to 1.2.
+ col_ratio (float, optional): excel的单元格宽高和实际图像边长需要做比例转换. Defaults to 7.5.
+ need_add_checker_column (bool, optional): 是否新增一列用于审核检查状态. Defaults to False.
+ """
+ df = pd.DataFrame(tasks)
+ # 先找到需要插入图像的列,插入图像列
+ keys_with_image = [
+ k for k in tasks[0].keys() if "images_path" in k and k != "save_images_path"
+ ]
+ high_priority_col_idx = 0
+ # 默认save_images_path是生成图像,放在后面
+ if "save_images_path" in tasks[0]:
+ keys_with_image.append("save_images_path")
+ for img_key in keys_with_image:
+ maxlen_img_key_value = max(
+ [
+ len(task[img_key]) if isinstance(task[img_key], list) else 1
+ for task in tasks
+ ]
+ )
+ for i in range(maxlen_img_key_value):
+ column = "{}_{}".format(img_key, i)
+ if column not in df.columns:
+ df.insert(
+ loc=high_priority_col_idx,
+ column=column,
+ value="",
+ )
+ high_priority_col_idx += 1
+
+ validate_start_idx = high_priority_col_idx
+ if validates is not None:
+ for i, validate in enumerate(validates):
+ if validate["col_name"] not in df.columns:
+ col_idx = validate_start_idx + i
+ df.insert(loc=col_idx, column=validate["col_name"], value="")
+ validate_idxs = range(validate_start_idx, validate_start_idx + len(validates))
+ writer = pd.ExcelWriter(save_path, engine="xlsxwriter")
+ # Convert the dataframe to an XlsxWriter Excel object.
+ df.to_excel(writer, sheet_name="Sheet1", index=False)
+ # Get the xlsxwriter workbook and worksheet objects.
+ workbook = writer.book
+ worksheet = writer.sheets["Sheet1"]
+ n_col = len(df.columns)
+ n_row = len(df)
+ text_format = workbook.add_format({"text_wrap": True})
+ set_text_column_dynamic_width(worksheet=worksheet, df=df, format=text_format)
+ # Insert an image.
+ for row in range(len(df)):
+ task = tasks[row]
+ cell_col = 0
+ for im_idx, img_key in enumerate(keys_with_image):
+ images_path = task[img_key]
+ if not isinstance(images_path, list):
+ cell_row = 1 + row
+ worksheet.write(cell_row, cell_col, img_key)
+ if len(images_path) == 0:
+ continue
+ worksheet = insert_cell_image(
+ worksheet=worksheet,
+ row=cell_row,
+ col=cell_col,
+ image_path=images_path,
+ image_height_in_table=image_height_in_table,
+ text_format=text_format,
+ row_ratio=row_ratio,
+ col_ratio=col_ratio,
+ )
+ cell_col += 1
+ else:
+ for i, image_path in enumerate(images_path):
+ worksheet = insert_cell_image(
+ worksheet=worksheet,
+ row=cell_row,
+ col=cell_col,
+ image_path=image_path,
+ image_height_in_table=image_height_in_table,
+ text_format=text_format,
+ row_ratio=row_ratio,
+ col_ratio=col_ratio,
+ )
+ cell_col += 1
+ if validates is not None:
+ worksheet = add_multi_data_validation(
+ workbook,
+ worksheet,
+ validates=validates,
+ validate_idxs=validate_idxs,
+ n_rows=len(df),
+ )
+ # Close the Pandas Excel writer and output the Excel file.
+ writer.save()
diff --git a/MuseV/MMCM/mmcm/utils/task_util.py b/MuseV/MMCM/mmcm/utils/task_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..8c5ac02acee1f9a3f508ae0ffe0a0e91b31d679c
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/task_util.py
@@ -0,0 +1,102 @@
+from copy import deepcopy
+from itertools import product
+import os
+from typing import Dict, List
+import logging
+
+import pandas as pd
+
+from .path_util import get_dir_file_map
+from .signature import get_signature_of_string
+
+logger = logging.getLogger(__name__) # pylint: disable=invalid-name
+
+
+def generate_tasks(
+ path: str,
+ key: str = None,
+ sep: str = ",",
+ exts: List[str] = None,
+ subset_row: str = None,
+) -> List[Dict]:
+ """读取文件,生成任务表格
+
+ Args:
+ path (str): 任务文件路径
+ key (str, optional): 作为任务名的字段. Defaults to None.
+ sep (str, optional): 表格字段分隔符. Defaults to ",".
+ exts (List[str], optional): 如果是文件夹,目前文件类型. Defaults to None.
+ subset_row (str, optional): 将1:2_3:4的字符串转化成整数索引列表,方便取子任务. Defaults to None.
+
+ Returns:
+ List[Dict]: 列表后的任务字典列表
+ """
+ if os.path.isdir(path):
+ tasks = get_dir_file_map(path=path, exts=exts)
+ tasks = [{key: k, path: v} for k, v in tasks.items()]
+ else:
+ ext = os.path.splitext(os.path.basename(path))[0]
+ if ext == "csv":
+ tasks = pd.read_csv(path, sep=sep)
+ if subset_row is not None:
+ subset_row = read_subset_rows(subset_row)
+ tasks = tasks.iloc[subset_row]
+ tasks = tasks.to_dict(orient="records")
+ else:
+ tasks = [{key: path}]
+ return tasks
+
+
+def get_filename_from_str(string, n=100, has_signature=True, n_signature=8):
+ name = string[:n]
+ if has_signature:
+ signature = get_signature_of_string(string, n_signature)
+ name = "{}_{}".format(name, signature)
+ return name
+
+
+def read_subset_rows(string: str) -> List:
+ """将1:2_3:4的字符串转化成整数索引列表,方便取子任务
+
+ Args:
+ string (str): _description_
+
+ Returns:
+ List: _description_
+ """
+ string = string.split("_")
+ lst = []
+ for s in string:
+ if ":" in s:
+ # 采用左闭、右闭方式
+ start, end = [int(x) for x in s.split(":")]
+ sub_lst = range(start, end + 1)
+ else:
+ sub_lst = [int(x) for x in s.split(",")]
+ lst.extend(sub_lst)
+ lst = sorted(set(lst))
+ return lst
+
+
+def fiss_tasks(tasks: List[Dict], task_fission_sep: str = "|") -> List[Dict]:
+ """fiss tasks if task_fission_sep in value by product"""
+ new_tasks = []
+ for task in tasks:
+ combination_fields = [
+ k for k, v in task.items() if isinstance(v, str) and task_fission_sep in v
+ ]
+ if len(combination_fields) == 0:
+ new_tasks.append(task)
+ continue
+ product_fields = [
+ task[field].split(task_fission_sep) for field in combination_fields
+ ]
+ product_fields = list(product(*product_fields))
+ # print("combination_fields", combination_fields)
+ # print("product_fields", product_fields)
+ for values in product_fields:
+ task_cp = deepcopy(task)
+ for i, field in enumerate(combination_fields):
+ task_cp[field] = values[i]
+ new_tasks.append(task_cp)
+ return new_tasks
diff --git a/MuseV/MMCM/mmcm/utils/time_util.py b/MuseV/MMCM/mmcm/utils/time_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..ce8a4bdc012a3e9965828ad835d94c66f4e8d84a
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/time_util.py
@@ -0,0 +1,38 @@
+import time
+
+
+def get_current_strtime(fmt: str = "%Y-%m-%d %H:%M:%S") -> str:
+ """get_current_strtime
+
+ Args:
+ fmt (_type_, optional): str time format. Defaults to "%Y-%m-%d %H:%M:%S".
+
+ Returns:
+ str: timestr
+ """
+ current_time = time.strftime(fmt, time.localtime())
+ return current_time
+
+
+def timestr_2_seconds(timestr: str) -> float:
+ """convert timestr to time float num,
+
+ Args:
+ timestr (str): should be h:m:s or h:m:s:M or h:m:s.M
+
+ Returns:
+ float: seconds
+ """
+ timestr_lst = timestr.split(":")
+ if len(timestr_lst) == 1:
+ seconds = float(timestr_lst[0])
+ else:
+ if len(timestr_lst) == 3:
+ time_range = [3600, 60, 1]
+ elif len(timestr_lst) == 4:
+ time_range = [3600, 60, 1, 1e-3]
+ timestr_lst[-1] = timestr_lst[-1][:3]
+ else:
+ raise ValueError("timestr should be like h:m:s or h:m:s:M or h:m:s.M, but given {}".format(timestr))
+ seconds = sum([float(timestr_lst[i]) * time_range[i] for i in range(len(timestr_lst))])
+ return round(seconds, 3)
diff --git a/MuseV/MMCM/mmcm/utils/transfer_util.py b/MuseV/MMCM/mmcm/utils/transfer_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..d9d3c582e7f903f8d2515af73b26d441329a2d54
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/transfer_util.py
@@ -0,0 +1,43 @@
+import os
+
+from typing import Callable
+
+
+def download_data(src: str, dst: str = None, download_func: Callable = None) -> str:
+ """使用download_func将目标文件下载到目标路径下
+
+ Args:
+ src (str): _description_
+ dst (str, optional): _description_. Defaults to None.
+ download_func (Callable, optional): _description_. Defaults to None.
+
+ Returns:
+ str: _description_
+ """
+ if not os.path.exists(dst):
+ download_func(src, dst)
+ return dst
+
+
+def download_data_with_cos(src: str, dst: str) -> None:
+ """使用cos工具下载cos上的文件
+
+ Args:
+ src (str): 原目录,
+ dst (str): 目标目录,暂不支持修改后的目录名字
+ """
+ from cos_utils.crate import CosCrate
+
+ src_basename = os.path.basename(src)
+ dst_path = os.path.join(dst, src_basename)
+ if os.path.exists(dst_path):
+ print("existed: {}".format(dst_path))
+ return
+ if "." not in src_basename:
+ if src[-1] != "/":
+ src += "/"
+ if "." not in os.path.basename(dst):
+ if dst[-1] != "/":
+ dst += "/"
+ CosCrate().download_to_local(src, dst)
+
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/utils/util.py b/MuseV/MMCM/mmcm/utils/util.py
new file mode 100755
index 0000000000000000000000000000000000000000..5287c597bb1434442252b03fc58a5a09c20e5ce6
--- /dev/null
+++ b/MuseV/MMCM/mmcm/utils/util.py
@@ -0,0 +1,309 @@
+# -*- coding: UTF-8 -*-
+
+"""
+__author__ = zhiqiangxia
+__date__ = 2019-03-18
+"""
+
+import os
+import time
+import json
+import importlib.util
+from typing import Any, Tuple, Dict, List, Iterable
+from collections import Counter
+import pandas as pd
+
+import yaml
+import pandas as pd
+
+
+def dict2list(dct: dict) -> list:
+ """将字典转换为列表,若值为列表,使用extend而不是append
+
+ Args:
+ dct (dict):
+
+ Returns:
+ list:
+ """
+ lst = []
+ for k, v in dct.items():
+ if isinstance(v, list):
+ lst.extend(v)
+ else:
+ lst.append(v)
+ return lst
+
+
+class Timer(object):
+ """A simple timer."""
+
+ def __init__(self):
+ self.total_time = 0.0
+ self.calls = 0
+ self.start_time = 0.0
+ self.diff = 0.0
+ self.average_time = 0.0
+
+ def tic(self) -> float:
+ # using time.time instead of time.clock because time time.clock
+ # does not normalize for multithreading
+ self.start_time = time.time()
+
+ def toc(self, average: bool = True) -> float:
+ self.diff = time.time() - self.start_time
+ self.total_time += self.diff
+ self.calls += 1
+ self.average_time = self.total_time / self.calls
+ if average:
+ return self.average_time
+ else:
+ return self.diff
+
+
+def load_dct_from_file(path: str, key=None) -> dict:
+ """读取字典类型的文件
+
+ Args:
+ path (str): 字典文件路径
+
+ Raises:
+ ValueError: 不支持该字典文件类型,仅支持json、yaml、python中的字典key
+
+ Returns:
+ dict: 读取的字典
+ """
+ if path.endswith(".json"):
+ dct = load_json(path)
+ elif path.endswith(".yaml"):
+ dct = load_yaml(path)
+ elif path.endswith(".py"):
+ dct = load_edct_py(path, key)
+ else:
+ raise ValueError("unsupported config file")
+ return dct
+
+
+def load_json(path: str) -> dict:
+ """读取json文件
+
+ Args:
+ path (str): json路径
+
+ Returns:
+ dict: 读取后的python 字典
+ """
+ with open(path, "r", encoding="utf-8") as f:
+ dct = json.load(f)
+ return dct
+
+
+def load_yaml(path: str) -> dict:
+ """读取yaml文件
+
+ Args:
+ path (str): yaml路径
+
+ Returns:
+ dict: 读取后的python 字典
+ """
+ dct = yaml.load(path)
+ return dct
+
+
+def load_edct_py(path: str, obj_name: str = None) -> dict:
+ """读取Python中的字典
+
+ Args:
+ path (str): py文件路径
+ obj_name (str): py文件中的字典变量名
+
+ Returns:
+ dict: 读取后的字典
+ """
+ module_name = "module_name"
+ spec = importlib.util.spec_from_file_location(module_name, path)
+ module = importlib.util.module_from_spec(spec)
+ spec.loader.exec_module(module)
+ dct = module if obj_name is None else getattr(module, obj_name)
+ return dct
+
+
+def merge_dct(target_dct: dict, source_dct: dict = None) -> None:
+ """
+ merge source_dct into target_dct
+ """
+ if source_dct is not None:
+ for k, v in source_dct.items():
+ if k not in target_dct:
+ target_dct[k] = v
+ else:
+ if not isinstance(v, dict):
+ target_dct[k] = v
+ else:
+ merge_dct(target_dct[k], source_dct[k])
+
+
+def convert_class_attr_to_dict(
+ obj: object, target_keys: list = None, ignored_keys: list = None
+) -> dict:
+ """将类中的属性转化成字典,默认转化为所有属性。
+
+ Args:
+ obj (object): 类对象
+ target_keys (list, optional): 需要保存的属性. Defaults to None.
+ ignored_keys (list, optional): 需要忽视的属性. Defaults to None.
+
+ Returns:
+ dict: 转换后的字典
+ """
+ if target_keys is not None:
+ dct = {k: v for k, v in obj.__dict__.items() if k in target_keys}
+ return dct
+ if ignored_keys is None:
+ ignored_keys = []
+ dct = {k: v for k, v in obj.__dict__.items() if k not in ignored_keys}
+ return dct
+
+
+def merge_list_continuous_same_element(lst: List[Any]) -> List[Dict[str, Any]]:
+ """将一层列表的相邻值合并,并返回每一个不同值的stat、end、元素值
+
+ Args:
+ lst (List[Any]): _description_
+
+ Returns:
+ List[Dict[str, Any]]: 合并后的列表结果,形如
+ [
+ {
+ "star": x,
+ "end": x,
+ "element": x,
+ },
+ ]
+ """
+ merge_lst = []
+ if len(lst) == 0:
+ return lst
+ elif len(lst) == 1:
+ return {"start": 0, "end": 0, "element": lst[0]}
+ start = 0
+ end = 0
+ last_element = lst[end]
+ for i, element in enumerate(lst):
+ if i == 0:
+ continue
+ if i == len(lst) - 1:
+ if element != last_element:
+ dct = {"start": start, "end": end, "element": last_element}
+ merge_lst.append(dct)
+ last = {"start": len(lst) - 1, "end": i, "element": element}
+ merge_lst.append(last)
+ else:
+ last = {"start": start, "end": i, "element": element}
+ merge_lst.append(last)
+ break
+
+ if element != last_element:
+ dct = {"start": start, "end": end, "element": last_element}
+ merge_lst.append(dct)
+ start = i
+ last_element = element
+ end = i
+ return merge_lst
+
+
+def flatten2generator(lst: Iterable, ignored_iterable_types: List = None):
+ """将一个嵌套迭代器展开成生成器,
+
+ Args:
+ lst (Iterable): 待展开的迭代器
+ ignored_iterable_types (_type_, List): 如果待展开的迭代器在该目标列表中,则不展开. Defaults to None.
+
+ Yields:
+ _type_: 不是迭代器的类型,或者 ignored_iterable_types中的类型
+ """
+ if ignored_iterable_types is None:
+ ignored_iterable_types = []
+ for element in lst:
+ if (
+ isinstance(element, Iterable)
+ and type(element) not in ignored_iterable_types
+ ):
+ for subc in flatten2generator(element):
+ yield subc
+ else:
+ yield element
+
+
+def flatten(lst: List, ignored_iterable_types=None) -> List:
+ """将 flatten_nested_iterable_2_generator展开的生成器转化为迭代器,容器目前使用 list
+
+ Args:
+ lst (List): _description_
+ ignored_iterable_types (_type_, List): 如果待展开的迭代器在该目标列表中,则不展开. Defaults to None.
+
+ Returns:
+ List: _description_
+ """
+ return list(flatten2generator(lst, ignored_iterable_types=ignored_iterable_types))
+
+
+def get_current_strtime(fmt: str = "%Y-%m-%d %H:%M:%S") -> str:
+ current_time = time.strftime(fmt, time.localtime())
+ return current_time
+
+
+def advanced_count(df: Iterable) -> Dict:
+ """对迭代器中的数值内容进行统计
+
+ Args:
+ df (Iterable): 值为可统计的迭代器,如str, int, float等
+
+ Returns:
+ Dict: 统计结果
+ """
+ n_all = len(df)
+ count = Counter(df)
+ new_count = {"total": n_all}
+ for k, v in count.items():
+ new_count[k] = v
+ new_count["{}_ratio".format(k)] = round(v / n_all * 100, 2)
+ return new_count
+
+
+class CustomCounter(object):
+ def __init__(self, name: str) -> None:
+ """多类别统计器,支持输入值的类别,针对每种类别分别统计
+
+ Args:
+ name (str): _description_
+ """
+ self.name = name
+ self._category_col = "category"
+ self._value_col = "value"
+ self._df = pd.DataFrame(columns=[self._category_col, self._value_col])
+
+ def update(self, v, k: str = "default") -> None:
+ new = pd.DataFrame([{self._category_col: k, self._value_col: v}])
+ self._df = pd.concat([self._df, new], axis=0)
+
+ def advanced_count(
+ self,
+ ) -> Dict:
+ dct = {"total": self.simple_count()}
+ if len(self._df[self._category_col] != "default") > 0:
+ for k, k_df in self._df.groupby(self._category_col):
+ dct[k] = advanced_count(k_df[self._value_col])
+ return dct
+
+ def simple_count(
+ self,
+ ) -> Dict:
+ return advanced_count(self._df[self._value_col])
+
+ def count(self, is_simple: bool = False) -> Dict:
+ if is_simple:
+ return self.simple_count()
+ else:
+ return self.advanced_count()
diff --git a/MuseV/MMCM/mmcm/vision/__init__.py b/MuseV/MMCM/mmcm/vision/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..f205a2dd0df6478abd44b294db851f1c3ee6814c
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/__init__.py
@@ -0,0 +1,34 @@
+from .human import (
+ InsightfacePredictor,
+ FaceTrackerByYolo5DeepSort,
+ FaceClusterByInfomap,
+)
+
+# wenlan depenon detectron2, which often failed, and would be removed
+from .transition.TransNetV2.transnetv2_predictor import TransNetV2Predictor
+
+try:
+ from .feature_extractor.wenlan.wenlan_predictor import (
+ WenLanVisualPredictor,
+ )
+except:
+ pass
+from .transition.scene_transition_predictor import SceneTransitionPredictor
+from .feature_extractor.taiyi_prefictor import TaiyiVisionFeatureExtractor
+from .feature_extractor.vae_extractor import VAEFeatureExtractor
+
+from .vis.vis_video_map import vis_video_map
+
+from .video_map.vision_object import Role, Roles
+from .video_map.video_map import VideoMap, VideoMapSeq
+from .video_map.video_clip import VideoClip, VideoClipSeq
+from .video_map.video_meta_info import VideoMetaInfo
+from .video_map.load_video_map import load_video_map
+
+from .utils.path_util import (
+ get_video_signature,
+ get_video_path_dct,
+ get_dir_file_map,
+ get_video_map_path_dct,
+ get_video_emd_path_dct,
+)
diff --git a/MuseV/MMCM/mmcm/vision/black_border.py b/MuseV/MMCM/mmcm/vision/black_border.py
new file mode 100755
index 0000000000000000000000000000000000000000..e9d8b9be13d3e4e19b6821d59246dc1f4025d022
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/black_border.py
@@ -0,0 +1,99 @@
+# -*- coding: utf-8 -*-
+
+import traceback
+import argparse
+import os
+
+from moviepy.editor import VideoFileClip
+import numpy as np
+
+
+# rmBlackBorder: remove the black borders of one image
+# return: cropped image
+def det_image_black_border(
+ src, # input image
+ thres, # threshold for cropping: sum([r,g,b] - [0,0,0](black))
+ shrink, # number of pixels to shrink after the blackBorders removed
+):
+ # remove the black border on both right and left side
+ nRow = src.shape[0]
+ nCol = src.shape[1]
+ left = 0
+ right = nCol
+
+ # for j in range(0, nCol):
+ # if src[:, j].mean() <= thres:
+ # left = j + 1
+ # else:
+ # break
+ #
+ # for j in range(nCol - 1, -1, -1):
+ # if src[:, j].mean() <= thres:
+ # right = j
+ # else:
+ # break
+
+ black_idx = np.where(src.mean(axis=0) <= thres)[0].tolist()
+ for i in black_idx:
+ if left < i < nCol // 2:
+ left = i
+ elif nCol // 2 < i < right:
+ right = i
+
+ if right - left > 0:
+ left = left + shrink
+ right = right - shrink
+ else:
+ left = 0
+ right = nCol
+
+ # remove the black border on both up and down side
+ up = 0
+ bottom = nRow
+
+ # for i in range(0, nRow):
+ # if src[i, :].mean() <= thres:
+ # up = i + 1
+ # else:
+ # break
+ #
+ # for i in range(nRow - 1, -1, -1):
+ # if src[i, :,].mean() <= thres:
+ # bottom = i
+ # else:
+ # break
+
+ black_idx = np.where(src.mean(axis=1) <= thres)[0].tolist()
+ for i in black_idx:
+ if up < i < nRow // 2:
+ up = i
+ elif nRow // 2 < i < bottom:
+ bottom = i
+
+ if bottom - up > 0:
+ top = up + shrink
+ bottom = bottom - shrink
+ else:
+ top = 0
+ bottom = nRow
+
+ return (left, top, right, bottom)
+
+
+def det_video_black_border(video_path):
+ video = VideoFileClip(video_path)
+ duration = video.duration
+ test_duration = 600
+ video = video.subclip(
+ t_start=duration / 2 - test_duration / 2, t_end=duration / 2 + test_duration / 2
+ )
+ frame_num = 0
+ for frame in video.iter_frames(fps=1):
+ frame = frame.astype(np.int64)
+ if frame_num == 0:
+ frame_sum = frame
+ else:
+ frame_sum += frame
+ frame_num += 1
+ frame = frame_sum / frame_num
+ return det_image_black_border(frame, 5, 0)
diff --git a/MuseV/MMCM/mmcm/vision/config/CFG.py b/MuseV/MMCM/mmcm/vision/config/CFG.py
new file mode 100755
index 0000000000000000000000000000000000000000..65174f8963626fb8714a0acd7f4b274a6eedcb21
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/config/CFG.py
@@ -0,0 +1,89 @@
+"""使用easydict配置适用于工程的全局参数字典
+后面可以再拆分 线上、线下、各自业务的全局字典,在使用时指定
+"""
+
+from easydict import EasyDict as edct
+
+from ...utils.color_util import PolledColor
+from .model_cfg import ModelCfg
+
+CFG = edct()
+CFG.application = None
+
+CFG.update(ModelCfg)
+CFG.device = "cuda"
+CFG.model_name = "StableDiffusion" # 从model_cfg中找到对应模型的路径
+CFG.pipe_name = "StableDiffusionPipeline" # 与diffusers中的pipeline类同名字符串
+CFG.scheduler = None # 与diffusers中的Scheduler类同名字符串
+CFG.requires_safety_checker = True # 是否使用 safety_checker
+CFG.template_name = "default" # 用于将输入的参数字典转化成模型prompt输入
+CFG.prompt_type = "default" # prompt_type不影响代码运行,纯粹方便对prompt分类理解
+CFG.target_width = 512
+CFG.target_height = 512
+CFG.num_inference_steps = 50
+CFG.guidance_scale = 7.0
+CFG.strength = 0.8
+CFG.image_height_in_table = 240
+CFG.try_num_util_succeed = 20 # 每个prompt任务图像生成尝试次数,不成功就放弃
+CFG.seed = None # predictor 预测时的随机数生成器种子
+# 一些专门定义的分隔符
+
+# 属性字符串中有该字符串时,会通过外积运算裂变成多个任务,其他属性一模一样
+CFG.task_fission_sep = "|"
+
+# 属性字符串中有该字符串时,会裂变成多个任务描述
+# 如`eyes`属性中有`small,black`,则真实文本会是`small eyes, black eyes`,任务数不会发生变化
+# 该部分还没有真正起作用,需要后面看怎么真正参数化,目前如果需要该功能,请在表格中记住使用`,`作为分隔符。
+CFG.atrtribute_fission_sep = ","
+
+CFG.time_str_format = "%Y-%m-%d %H:%M:%S"
+
+# 输出文本图像存储方式
+# 是否给存的结果增加审核列,便于候选审核
+CFG.add_checker_columns = False
+CFG.validates = None
+
+# video_map相关算法
+CFG.SemanticsAlgo = "wenlan"
+CFG.ClipTransitionAlgo = "TransnetV2"
+CFG.SscneTransitionAlgo = "SceneSeg"
+CFG.FaceAlgo = "insightface"
+CFG.TrackAlgo = "deepsort"
+
+# 剪辑相关配置
+# 颜色可参考:http://www1.ynao.ac.cn/~jinhuahe/know_base/othertopics/computerissues/RGB_colortable.htm
+
+# PRODUCTION, DEVELOP, DEBUG
+CFG.RunningMode = "DEVELOP"
+CFG.TalkingDetectionTh = -0.2
+CFG.FocalHumanMaxid = 3
+CFG.MoviepyVideoClipReadOffset = 0.2
+CFG.RecallNum = 1
+CFG.RankNum = 1
+
+# MusicInfo
+CFG.MSSLyricInterInterval = 4
+
+# VideoInfo
+CFG.VideoStart = 0.15
+CFG.VideoEnd = 0.8
+
+# VisualizationParameters
+CFG.Font = "Courier"
+# CFG.Font = "STXinwei" # 相对秀气的字体,比较适合MV
+CFG.LyricFontSize = 25
+# LyricTitleFontSize = CFG.LyricFontSize * 1.1
+
+# Debug
+# 是否可视化clip中的帧信息,目前打开了会非常卡,默认关闭
+CFG.VisFrame = False
+# 音乐转场点边界块,可视化颜色、宽度
+CFG.MusicTransitionEdgeColor = (51, 161, 201) # 孔雀蓝
+CFG.MusicTransitionEdgeSize = (20, 60)
+
+CFG.DebugFontSize = 30
+CFG.DebugTextStrokeWidth = 2
+CFG.DebugTextColors = ["red", "orange"]
+CFG.DebugTextColorsCls = PolledColor(CFG.DebugTextColors)
+CFG.DebugFrameTextDuration = 0.5
+CFG.DebugFrameTextColor = "red"
diff --git a/MuseV/MMCM/mmcm/vision/config/__init__.py b/MuseV/MMCM/mmcm/vision/config/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/vision/config/cfg_util.py b/MuseV/MMCM/mmcm/vision/config/cfg_util.py
new file mode 100755
index 0000000000000000000000000000000000000000..62ff3836632cc179fec5ac555d827dd7bcbdad98
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/config/cfg_util.py
@@ -0,0 +1,45 @@
+from typing import Dict, Callable, List
+import os
+
+from ..utils.data_util import dict_has_keys, dict_get_keys
+from .model_cfg import ModelCfg
+
+
+def get_model_path(
+ model_names: List[str],
+ online_dir: str,
+ offline_dir: str,
+ download_func: Callable,
+) -> Dict:
+ """get model_path dict by model_name. If not existed, do download.
+
+ Args:
+ model_name (str): _description_
+ online_dir (str): _description_
+ offline_dir (str): _description_
+ download_func (Callable): _description_
+
+ Returns:
+ Dict: _description_
+ """
+ if not dict_has_keys(ModelCfg, model_names):
+ print("please set online model_path at least for {}".format(model_names))
+ return
+ else:
+ model_basename_dct = dict_get_keys(ModelCfg, model_names)
+ offline_path_dct = {}
+ for k, v in model_basename_dct.items():
+ offline_path = os.path.join(offline_dir, v)
+ os.makedirs(os.path.dirname(offline_path), exist_ok=True)
+ if not os.path.exists(offline_path):
+ online_path = os.path.join(online_dir, v)
+ print(
+ "starting downloading models from {} to".format(
+ online_path, offline_path
+ )
+ )
+ download_func(online_path, offline_dir)
+ else:
+ print("load offline model from {}".format(offline_path))
+ offline_path_dct[k] = offline_path
+ return offline_path_dct
diff --git a/MuseV/MMCM/mmcm/vision/config/model_cfg.py b/MuseV/MMCM/mmcm/vision/config/model_cfg.py
new file mode 100755
index 0000000000000000000000000000000000000000..3ec31f79c642bcf84fc51c502e8b287b4ccc1d6b
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/config/model_cfg.py
@@ -0,0 +1,59 @@
+from easydict import EasyDict as edct
+
+ModelCfg = edct()
+
+# a full path of models list should be
+# ModelCfg.StableDiffusion = {
+# "model_path": str,
+# "vae_path": str,
+# }
+
+# the full path is os.path.join(ModelCfg.Online_Model_Dir, ModelCfg.model_name["k"])
+# Online_Model_Dir use cos
+
+ModelCfg.Online_Model_Dir = "/DeployModels/vision"
+ModelCfg.Offline_Model_Dir = "/cfs/cfs-4a8cd28be/DeployModel/vision"
+
+# transition model
+ModelCfg.TransnetV2 = {"model_path": "transition/transnetv2_pytorch_weights.pth"}
+
+# generation model path
+Generation = edct()
+## sd model_path
+StableDiffusion = edct()
+Generation.StableDiffusionModel = StableDiffusion
+ModelCfg.Generation = Generation
+StableDiffusion.StableDiffusion = {
+ "model_path": "sd-v1-4/snapshots/2881c082ee0dc70d9eeb645f1b150040a4b62767"
+}
+StableDiffusion.WaifuSD_V13_FP32 = {
+ "model_path": "waifu-diffusion-v1-3_FP32",
+}
+StableDiffusion.WaifuSD_V13_FP16 = {
+ "model_path": "waifu-diffusion-v1-3_FP16",
+}
+StableDiffusion.WaifuSD = StableDiffusion.WaifuSD_V13_FP32
+StableDiffusion.AnythingSD = {
+ "model_path": "anything-v3.0",
+}
+StableDiffusion.NovelAISDInformal = {
+ "model_path": "NovelAISDInformal",
+}
+StableDiffusion.TrinartSD = {
+ "model_path": "models--naclbit--trinart_stable_diffusion_v2/snapshots/0dcafd78d07345d30f3e7c12277693e0ffeeec72",
+}
+StableDiffusion.ArcherSD = {
+ "model_path": "archer-diffusion",
+}
+ModelCfg.TrinartSD = {
+ "model_path": "sd-v1-4/snapshots/2881c082ee0dc70d9eeb645f1b150040a4b62767",
+}
+StableDiffusion.PixelSD = {
+ "model_path": "All-In-One-Pixel-Model",
+}
+StableDiffusion.PixelArtSD = {
+ "model_path": "PixelArtSD",
+}
+StableDiffusion.MomokoE = {
+ "model_path": "momoko-e",
+}
diff --git a/MuseV/MMCM/mmcm/vision/data/__init__.py b/MuseV/MMCM/mmcm/vision/data/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..98d03b48925a2073963854499e6475ac92c0675b
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/data/__init__.py
@@ -0,0 +1 @@
+from .video_dataset import MoviepyVideoDataset, OpenCVVideoDataset, DecordVideoDataset, ImagesSequentialDataset, PILImageSequentialDataset
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/vision/data/image_dataset.py b/MuseV/MMCM/mmcm/vision/data/image_dataset.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/vision/data/video_dataset.py b/MuseV/MMCM/mmcm/vision/data/video_dataset.py
new file mode 100755
index 0000000000000000000000000000000000000000..a463498fb1a26359e189f7db8c3c51b4619437d2
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/data/video_dataset.py
@@ -0,0 +1,494 @@
+import os
+import itertools
+from collections import namedtuple
+from typing import Any, Iterator, List, Literal, Sequence
+import math
+from einops import rearrange
+
+from moviepy.editor import VideoFileClip
+import torchvision
+from torch.utils.data.dataset import Dataset, IterableDataset
+from PIL import Image
+import cv2
+import torch
+import numpy as np
+
+from ...utils.path_util import get_dir_file_map
+from ...utils.itertools_util import generate_sample_idxs, overlap2step, step2overlap
+
+
+VideoDatasetOutput = namedtuple("video_dataset_output", ["data", "index"])
+
+
+def worker_init_fn(worker_id: int):
+ worker_info = torch.utils.data.get_worker_info()
+ dataset = worker_info.dataset # the dataset copy in this worker process
+ overall_start = 0
+ overall_end = len(dataset)
+ # configure the dataset to only process the split workload
+ per_worker = int(
+ math.ceil((overall_end - overall_start) / float(worker_info.num_workers))
+ )
+ worker_id = worker_info.id
+ dataset_start = overall_start + worker_id * per_worker
+ dataset_end = min(overall_start + per_worker, overall_end)
+ dataset.sample_indexs = dataset.sample_indexs[dataset_start:dataset_end]
+
+
+class SequentialDataset(IterableDataset):
+ def __init__(
+ self,
+ raw_datas,
+ time_size: int,
+ step: int,
+ overlap: int = None,
+ sample_rate: int = 1,
+ drop_last: bool = False,
+ max_num_per_batch: int = None,
+ data_type: Literal["bgr", "rgb"] = "bgr",
+ channels_order: str = "t h w c",
+ sample_indexs: List[List[int]] = None,
+ ) -> None:
+ """_summary_
+
+ Args:
+ raw_datas (_type_): all original data
+ time_size (int): frames number of a clip
+ step (int): step of two windows
+ overlap (int, optional): overlap of two windows. Defaults to None.
+ sample_rate (int, optional): sample 1 evey sample_rate number. Defaults to 1.
+ drop_last (bool, optional): whether drop the last if length of last batch < time_size. Defaults to False.
+ """
+ super().__init__()
+ self.time_size = time_size
+ if overlap is not None and step is None:
+ step = overlap2step(overlap, time_size)
+ if step is not None and overlap is None:
+ overlap = step2overlap(step, time_size)
+ self.overlap = overlap
+ self.step = step
+ self.sample_rate = sample_rate
+ self.drop_last = drop_last
+ self.raw_datas = raw_datas
+ self.max_num_per_batch = max_num_per_batch
+ if sample_indexs is not None:
+ self.sample_indexs = sample_indexs
+ else:
+ self.generate_sample_idxs()
+ self.current_pos = 0
+ self.data_type = data_type
+ self.channels_order = channels_order
+
+ def generate_sample_idxs(
+ self,
+ ):
+ self.sample_indexs = generate_sample_idxs(
+ total=self.total_frames,
+ window_size=self.time_size,
+ step=self.step,
+ sample_rate=self.sample_rate,
+ drop_last=self.drop_last,
+ max_num_per_window=self.max_num_per_batch,
+ )
+
+ def get_raw_datas(
+ self,
+ ):
+ return self.raw_datas
+
+ def get_raw_data(self, index: int):
+ raise NotImplementedError
+
+ def get_batch_raw_data(self, indexs: List[int]):
+ datas = [self.get_raw_data(i) for i in indexs]
+ datas = np.stack(datas, axis=0)
+ return datas
+
+ def __len__(self):
+ return len(self.sample_indexs)
+
+ def __iter__(self) -> Iterator[Any]:
+ return self
+
+ def __getitem__(self, index):
+ sample_indexs = self.sample_indexs[index]
+ data = self.get_batch_raw_data(sample_indexs)
+ if self.channels_order != "t h w c":
+ data = rearrange(data, "t h w c -> {}".format(self.channels_order))
+ sample_indexs = np.array(sample_indexs)
+ return VideoDatasetOutput(data, sample_indexs)
+
+ def get_data(self, index):
+ return self.__getitem__(index)
+
+ def __next__(self):
+ while self.current_pos < len(self.sample_indexs):
+ data = self.get_data(self.current_pos)
+ self.current_pos += 1
+ return data
+ self.current_pos = 0
+ raise StopIteration
+
+ def preview(self, clip):
+ """show data clip,
+ play for image, video, and print for str list
+
+ Args:
+ clip (_type_): _description_
+ """
+ raise NotImplementedError
+
+ def close(self):
+ """
+ close file handle if subclass open file
+ """
+ raise NotImplementedError
+
+ @property
+ def fps(self):
+ raise NotImplementedError
+
+ @property
+ def total_frames(self):
+ raise NotImplementedError
+
+ @property
+ def duration(self):
+ raise NotImplementedError
+
+ @property
+ def width(self):
+ raise NotImplementedError
+
+ @property
+ def height(self):
+ raise NotImplementedError
+
+
+class ItemsSequentialDataset(SequentialDataset):
+ def __init__(
+ self,
+ raw_datas: Sequence,
+ time_size: int,
+ step: int,
+ overlap: int = None,
+ sample_rate: int = 1,
+ drop_last: bool = False,
+ sample_indexs: List[List[int]] = None,
+ ) -> None:
+ super().__init__(
+ raw_datas,
+ time_size,
+ step,
+ overlap,
+ sample_rate,
+ drop_last,
+ sample_indexs=sample_indexs,
+ )
+
+ def get_raw_data(self, index: int):
+ return self.raw_datas[index]
+
+ def prepare_raw_datas(self, raw_datas) -> Sequence:
+ return raw_datas
+
+ @property
+ def total_frames(self):
+ return len(self.raw_datas)
+
+
+class ListSequentialDataset(ItemsSequentialDataset):
+ def preview(self, clip):
+ print(f"type is {self.__class__.__name__}, num is {len(clip)}")
+ print(clip)
+
+
+class ImagesSequentialDataset(ItemsSequentialDataset):
+ def __init__(
+ self,
+ img_dir: Sequence,
+ time_size: int,
+ step: int,
+ overlap: int = None,
+ sample_rate: int = 1,
+ drop_last: bool = False,
+ data_type: Literal["bgr", "rgb"] = "bgr",
+ channels_order: str = "t h w c",
+ sample_indexs: List[List[int]] = None,
+ ) -> None:
+ self.imgs_path = sorted(get_dir_file_map(img_dir).values())
+ super().__init__(
+ self.imgs_path,
+ time_size,
+ step,
+ overlap,
+ sample_rate,
+ drop_last,
+ data_ty=data_type,
+ channels_order=channels_order,
+ sample_indexs=sample_indexs,
+ )
+
+
+class PILImageSequentialDataset(ImagesSequentialDataset):
+ def __getitem__(self, index: int) -> Image.Image:
+ data, sample_indexs = super().__getitem__(index)
+ data = [Image.open(x) for x in data]
+ return VideoDatasetOutput(data, sample_indexs)
+
+
+class MoviepyVideoDataset(SequentialDataset):
+ def __init__(
+ self,
+ path,
+ time_size: int,
+ step: int,
+ overlap: int = None,
+ sample_rate: int = 1,
+ drop_last: bool = False,
+ data_type: Literal["bgr", "rgb"] = "bgr",
+ contenct_box: List[int] = None,
+ sample_indexs: List[List[int]] = None,
+ ) -> None:
+ self.path = path
+ self.f = self.prepare_raw_datas(self.path)
+ super().__init__(
+ self.f,
+ time_size,
+ step,
+ overlap,
+ sample_rate,
+ drop_last,
+ data_type=data_type,
+ sample_indexs=sample_indexs,
+ )
+ self.contenct_box = contenct_box
+
+ def prepare_raw_datas(self, path):
+ f = VideoFileClip(path)
+ return f
+
+ def get_raw_data(self, index: int):
+ return self.f.get_frame(index * 1 / self.f.fps)
+
+ @property
+ def fps(self):
+ return self.f.fps
+
+ @property
+ def size(self):
+ return self.f.size
+
+ @property
+ def total_frames(self):
+ return int(self.duration * self.fps)
+
+ @property
+ def duration(self):
+ return self.f.duration
+
+ @property
+ def width(self):
+ return self.f.w
+
+ @property
+ def height(self):
+ return self.f.h
+
+ def __next__(
+ self,
+ ):
+ video_clips = []
+ cnt = 0
+ frame_indexs = []
+
+ for frame in itertools.islice(self.video.iter_frames(), step=self.step):
+ if cnt >= self.total_frames:
+ raise StopIteration
+ else:
+ frame_indexs.append(cnt)
+ cnt += self.step
+ if len(video_clips) < self.time_size:
+ video_clips.append(frame)
+ else:
+ return_video_clips = video_clips
+ return_frame_indexs = frame_indexs
+ video_clips = []
+ frame_indexs = []
+ return VideoDatasetOutput(return_video_clips, return_frame_indexs)
+
+
+class TorchVideoDataset(object):
+ pass
+
+
+class OpenCVVideoDataset(SequentialDataset):
+ def __init__(
+ self,
+ path,
+ time_size: int,
+ step: int,
+ overlap: int = None,
+ sample_rate: int = 1,
+ drop_last: bool = False,
+ data_type: Literal["bgr", "rgb"] = "bgr",
+ channels_order: str = "t h w c",
+ sample_indexs: List[List[int]] = None,
+ ) -> None:
+ self.path = path
+ self.f = self.prepare_raw_datas(path)
+ super().__init__(
+ self.f,
+ time_size,
+ step,
+ overlap,
+ sample_rate,
+ drop_last,
+ data_type=data_type,
+ channels_order=channels_order,
+ sample_indexs=sample_indexs,
+ )
+
+ def prepare_raw_datas(self, path):
+ f = cv2.VideoCapture(path)
+ return f
+
+ def get_raw_data(self, index: int):
+ self.f.set(cv2.CAP_PROP_POS_FRAMES, index)
+ if index < 0 or index >= self.total_frames:
+ raise IndexError(
+ f"index must in [0, {self.total_frames -1 }], but given index"
+ )
+ ret, frame = self.f.read()
+ if self.data_type == "rgb":
+ frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
+ return frame
+
+ def get_raw_data_by_time(self, idx):
+ raise NotImplementedError
+
+ @property
+ def total_frames(self):
+ return int(self.f.get(cv2.CAP_PROP_FRAME_COUNT))
+
+ @property
+ def width(self):
+ return int(self.f.get(cv2.CAP_PROP_FRAME_WIDTH))
+
+ @property
+ def height(self):
+ return int(self.f.get(cv2.CAP_PROP_FRAME_HEIGHT))
+
+ @property
+ def durtion(self):
+ return self.total_frames / self.fps
+
+ @property
+ def fps(self):
+ return self.f.get(cv2.CAP_PROP_FPS)
+
+
+class DecordVideoDataset(SequentialDataset):
+ def __init__(
+ self,
+ path,
+ time_size: int,
+ step: int,
+ device: str,
+ overlap: int = None,
+ sample_rate: int = 1,
+ drop_last: bool = False,
+ device_id: int = 0,
+ data_type: Literal["bgr", "rgb"] = "bgr",
+ channels_order: str = "t h w c",
+ sample_indexs: List[List[int]] = None,
+ ) -> None:
+ self.path = path
+ self.device = device
+ self.device_id = device_id
+ self.f = self.prepare_raw_datas(path)
+ super().__init__(
+ self.f,
+ time_size,
+ step,
+ overlap,
+ sample_rate,
+ drop_last,
+ data_type=data_type,
+ channels_order=channels_order,
+ sample_indexs=sample_indexs,
+ )
+
+ def prepare_raw_datas(self, path):
+ from decord import VideoReader
+ from decord import cpu, gpu
+
+ if self.device == "cpu":
+ device = cpu(self.device_id)
+ else:
+ device = gpu(self.device_id)
+ with open(path, "rb") as f:
+ f = VideoReader(f, ctx=device)
+ return f
+
+ # decord 的 颜色通道 通道默认是 rgb
+ def get_raw_data(self, index: int):
+ data = self.f[index].asnumpy()
+ if self.data_type == "bgr":
+ data = data[:, :, ::-1]
+ return data
+
+ def get_batch_raw_data(self, indexs: List[int]):
+ data = self.f.get_batch(indexs).asnumpy()
+
+ if self.data_type == "bgr":
+ data = data[:, :, :, ::-1]
+ return data
+
+ @property
+ def total_frames(self):
+ return len(self.f)
+
+ @property
+ def height(self):
+ return self.f[0].shape[0]
+
+ @property
+ def width(self):
+ return self.f[0].shape[1]
+
+ @property
+ def size(self):
+ return self.f[0].shape[:2]
+
+ @property
+ def shape(self):
+ return self.f[0].shape
+
+
+class VideoMapClipDataset(SequentialDataset):
+ def __init__(
+ self,
+ video_map: str,
+ raw_datas,
+ time_size: int,
+ step: int,
+ overlap: int = None,
+ sample_rate: int = 1,
+ drop_last: bool = False,
+ max_num_per_batch: int = None,
+ ) -> None:
+ self.video_map = video_map
+ super().__init__(
+ raw_datas,
+ time_size,
+ step,
+ overlap,
+ sample_rate,
+ drop_last,
+ max_num_per_batch,
+ )
+
+ def generate_sample_idxs(self):
+ # use video_map to generate matched sampled_index
+ raise NotImplementedError
diff --git a/MuseV/MMCM/mmcm/vision/data/vision_writer.py b/MuseV/MMCM/mmcm/vision/data/vision_writer.py
new file mode 100755
index 0000000000000000000000000000000000000000..a70f333dd0c320249099bb05ab75af611d24e65f
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/data/vision_writer.py
@@ -0,0 +1,48 @@
+from typing import Sequence
+
+from numpy import ndarray
+import cv2
+try:
+ import imageio
+except ImportError:
+ imageio = None
+
+
+def create_video(frames: Sequence[ndarray], out: str, fourcc: int, fps: int,
+ size: tuple) -> None:
+ """Create a video to save the optical flow.
+ ## from mmflow
+ Args:
+ frames (list, tuple): Image frames.
+ out (str): The output file to save visualized flow map.
+ fourcc (int): Code of codec used to compress the frames.
+ fps (int): Framerate of the created video stream.
+ size (tuple): Size of the video frames.
+ """
+ # init video writer
+ video_writer = cv2.VideoWriter(out, fourcc, fps, size, True)
+
+ for frame in frames:
+ video_writer.write(frame)
+ video_writer.release()
+
+
+def create_gif(frames: Sequence[ndarray],
+ gif_name: str,
+ duration: float = 0.1) -> None:
+ """Create gif through imageio.
+ ## from mmflow
+
+ Args:
+ frames (list[ndarray]): Image frames.
+ gif_name (str): Saved gif name
+ duration (int): Display interval (s). Default: 0.1.
+ """
+ frames_rgb = []
+ for frame in frames:
+ frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
+ frames_rgb.append(frame_rgb)
+ if imageio is None:
+ raise RuntimeError('imageio is not installed,'
+ 'Please use “pip install imageio” to install')
+ imageio.mimsave(gif_name, frames_rgb, 'GIF', duration=duration)
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/__init__.py b/MuseV/MMCM/mmcm/vision/feature_extractor/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..7b06941c22b06806e05a6c4cbd97f6e936f77a8f
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/__init__.py
@@ -0,0 +1 @@
+# TODO: 有必要统一下 vision_clip_extractor
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/clip_vision_extractor.py b/MuseV/MMCM/mmcm/vision/feature_extractor/clip_vision_extractor.py
new file mode 100755
index 0000000000000000000000000000000000000000..8f1378a9ac29f1eef5797ff5ed326c5731c51b48
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/clip_vision_extractor.py
@@ -0,0 +1,368 @@
+import json
+import os
+import time
+from typing import Literal, Optional, Union, List, Tuple
+from tqdm import tqdm
+
+from PIL import Image
+from torch import nn
+from transformers import (
+ CLIPVisionModelWithProjection,
+ CLIPImageProcessor,
+ AutoProcessor,
+)
+
+import h5py
+import torch
+import numpy as np
+
+from ...data.extract_feature.base_extract_feature import BaseFeatureExtractor
+from ...data.emb.h5py_emb import save_value_with_h5py
+
+from ..process.image_process import dynamic_crop_resize_image
+from ..utils.data_type_util import convert_images
+
+
+__all__ = [
+ "ImageClipVisionFeatureExtractor",
+ "ImageClipVisionFeatureExtractorV2",
+ "ImageClipVisionFeatureExtractorV3",
+ "ImageClipVisionFeatureExtractorV4",
+ "VerstailSDLastHiddenState2ImageEmb",
+ "OriginLastHiddenState2ImageEmbd",
+ "OriginLastHiddenState2Poolout",
+]
+
+
+class ImageClipVisionFeatureExtractor(BaseFeatureExtractor):
+ """选择clip的image_embeds,一张图像的输出特征是N,根据模型的选择可能是512、768、1024
+
+ Args:
+ BaseFeatureExtractor (_type_): _description_
+ """
+
+ def __init__(
+ self,
+ pretrained_model_name_or_path: str,
+ name: str = None,
+ device: str = "cpu",
+ dtype=torch.float32,
+ ):
+ super().__init__(device, dtype, name)
+ self.pretrained_model_name_or_path = pretrained_model_name_or_path
+ # 保持和 ipadapter 一致
+ self.image_encoder = CLIPVisionModelWithProjection.from_pretrained(
+ pretrained_model_name_or_path
+ ).to(device=device, dtype=dtype)
+ # TODO: 存在多种初始化代码,待后续统一
+ if os.path.isdir(pretrained_model_name_or_path):
+ self.clip_image_processor = CLIPImageProcessor()
+ else:
+ self.clip_image_processor = AutoProcessor.from_pretrained(
+ pretrained_model_name_or_path
+ )
+
+ def extract_images(
+ self,
+ data: Union[str, List[str], Image.Image, List[Image.Image], np.ndarray],
+ target_width: int = None,
+ target_height: int = None,
+ return_type: str = "numpy",
+ input_rgb_order: str = "rgb",
+ ) -> Union[np.ndarray, torch.Tensor]:
+ data = convert_images(data, return_type="pil", input_rgb_order=input_rgb_order)
+ if target_height is not None and target_width is not None:
+ data = [
+ dynamic_crop_resize_image(
+ image,
+ target_height=target_height,
+ target_width=target_width,
+ )
+ for image in data
+ ]
+
+ with torch.no_grad():
+ clip_image = self.clip_image_processor(
+ images=data, return_tensors="pt"
+ ).pixel_values
+ emb = self.get_target_emb(
+ clip_image.to(device=self.device, dtype=self.dtype)
+ )
+ if return_type == "numpy":
+ emb = emb.cpu().numpy()
+ return emb
+
+ def get_target_emb(self, data):
+ outputs = self.image_encoder(data).image_embeds
+ return outputs
+
+ def extract_video(
+ self,
+ video_dataset,
+ target_width: int = None,
+ target_height: int = None,
+ return_type: str = "numpy",
+ track_performance: bool = False,
+ input_rgb_order: str = "rgb",
+ ) -> Union[np.ndarray, torch.Tensor]:
+ embs = []
+ sample_indexs = []
+ if track_performance:
+ performance = {}
+ with torch.no_grad():
+ for i, (batch, batch_index) in enumerate(video_dataset):
+ # TODO: 现阶段复用hugging face diffusers img2img pipeline中的抽取代码,
+ # 由于该代码目前只支持Image的预处理,故先将numpy.ndarray转换成PIL.Image
+ batch = [Image.fromarray(batch[b_i]) for b_i in range(len(batch))]
+ emb = self.extract_images(
+ data=batch,
+ target_width=target_width,
+ target_height=target_height,
+ return_type=return_type,
+ input_rgb_order=input_rgb_order,
+ )
+ embs.append(emb)
+ sample_indexs.extend(batch_index)
+ sample_indexs = np.array(sample_indexs)
+ if return_type == "numpy":
+ embs = np.concatenate(embs, axis=0)
+ elif return_type == "torch":
+ embs = torch.concat(embs)
+ sample_indexs = torch.from_numpy(sample_indexs)
+ return sample_indexs, embs
+
+ def extract(
+ self,
+ data: Union[str, List[str]],
+ data_type: Literal["image", "video"],
+ return_type: str = "numpy",
+ save_emb_path: str = None,
+ save_type: str = "h5py",
+ emb_key: str = "image_embeds",
+ sample_index_key: str = "sample_indexs",
+ insert_name_to_key: bool = False,
+ overwrite: bool = False,
+ input_rgb_order: str = "rgb",
+ save_sample_index: bool = True,
+ **kwargs,
+ ) -> Union[np.ndarray, torch.tensor]:
+ if self.name is not None and insert_name_to_key:
+ emb_key = f"{self.name}_{emb_key}"
+ sample_index_key = f"{self.name}_{sample_index_key}"
+ if save_emb_path is not None and os.path.exists(save_emb_path):
+ with h5py.File(save_emb_path, "r") as f:
+ if not overwrite and emb_key in f and sample_index_key in f:
+ return None
+
+ if data_type == "image":
+ emb = self.extract_images(
+ data=data,
+ return_type=return_type,
+ input_rgb_order=input_rgb_order,
+ **kwargs,
+ )
+ if save_emb_path is None:
+ return emb
+ else:
+ raise NotImplementedError("save images emb")
+ elif data_type == "video":
+ sample_indexs, emb = self.extract_video(
+ video_dataset=data,
+ return_type=return_type,
+ input_rgb_order=input_rgb_order,
+ **kwargs,
+ )
+ if save_emb_path is None:
+ return sample_indexs, emb
+ else:
+ if save_type == "h5py":
+ self.save_video_emb_with_h5py(
+ save_emb_path=save_emb_path,
+ emb=emb,
+ emb_key=emb_key,
+ sample_indexs=sample_indexs,
+ sample_index_key=sample_index_key,
+ overwrite=overwrite,
+ save_sample_index=save_sample_index,
+ )
+ return sample_indexs, emb
+ else:
+ raise ValueError(f"only support save_type={save_type}")
+
+ @staticmethod
+ def save_images_emb_with_h5py(
+ save_emb_path: str,
+ emb: np.ndarray = None,
+ emb_key: str = "image_embeds",
+ ) -> h5py.File:
+ save_value_with_h5py(save_emb_path, value=emb, key=emb_key)
+
+ @staticmethod
+ def save_video_emb_with_h5py(
+ save_emb_path: str,
+ emb: np.ndarray = None,
+ emb_key: str = "image_embeds",
+ sample_indexs: np.ndarray = None,
+ sample_index_key: str = "sample_indexs",
+ overwrite: bool = False,
+ save_sample_index: bool = True,
+ ) -> h5py.File:
+ save_value_with_h5py(
+ save_emb_path,
+ value=emb,
+ key=emb_key,
+ overwrite=overwrite,
+ dtype=np.float16,
+ )
+ if save_sample_index:
+ save_value_with_h5py(
+ save_emb_path,
+ value=sample_indexs,
+ key=sample_index_key,
+ overwrite=overwrite,
+ dtype=np.uint32,
+ )
+
+
+class ImageClipVisionFeatureExtractorV2(ImageClipVisionFeatureExtractor):
+ """选择clip的 hidden_states[-2],一张图像的输出特征是M*D,如257*1280,
+
+ Args:
+ BaseFeatureExtractor (_type_): _description_
+ """
+
+ def __init__(
+ self,
+ pretrained_model_name_or_path: str,
+ name: str = None,
+ device: str = "cpu",
+ dtype=torch.float32,
+ ):
+ super().__init__(pretrained_model_name_or_path, name, device, dtype)
+
+ def get_target_emb(self, data):
+ outputs = self.image_encoder(data, output_hidden_states=True).hidden_states[-2]
+ return outputs
+
+
+class ImageClipVisionFeatureExtractorV3(ImageClipVisionFeatureExtractor):
+ """选择clip的 hidden_states[-2],一张图像的输出特征是M*D,如257*1280,
+
+ Args:
+ BaseFeatureExtractor (_type_): _description_
+ """
+
+ def __init__(
+ self,
+ pretrained_model_name_or_path: str,
+ name: str = None,
+ device: str = "cpu",
+ dtype=torch.float32,
+ ):
+ super().__init__(pretrained_model_name_or_path, name, device, dtype)
+
+ def get_target_emb(self, data):
+ outputs = self.image_encoder(data, output_hidden_states=True).last_hidden_state
+ return outputs
+
+
+class ImageClipVisionFeatureExtractorV4(ImageClipVisionFeatureExtractor):
+ """
+ 参考 https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/deprecated/versatile_diffusion/pipeline_versatile_diffusion_image_variation.py#L114
+
+ Args:
+ BaseFeatureExtractor (_type_): _description_
+ """
+
+ def __init__(
+ self,
+ pretrained_model_name_or_path: str,
+ name: str = None,
+ device: str = "cpu",
+ dtype=torch.float32,
+ ):
+ super().__init__(pretrained_model_name_or_path, name, device, dtype)
+
+ def get_target_emb(self, data):
+ encoder_output = self.image_encoder(data, output_hidden_states=True)
+ embeds = self.image_encoder.vision_model.post_layernorm(
+ encoder_output.last_hidden_state
+ )
+ embeds = self.image_encoder.visual_projection(embeds)
+ embeds_pooled = embeds[:, 0:1]
+ embeds = embeds / torch.norm(embeds_pooled, dim=-1, keepdim=True)
+ return embeds
+
+
+class OriginLastHiddenState2Poolout(nn.Module):
+ def __init__(
+ self,
+ hidden_size: int,
+ projection_dim: int,
+ layer_norm_eps: float,
+ ):
+ super().__init__()
+ self.post_layernorm = nn.LayerNorm(hidden_size, eps=layer_norm_eps)
+ self.visual_projection = nn.Linear(hidden_size, projection_dim, bias=False)
+
+ def load_state_dict_from_pretrained(self, pretrained_model_name_or_path):
+ model_pretrained = torch.load(
+ os.path.join(pretrained_model_name_or_path, "pytorch_model.bin"),
+ map_location="cpu",
+ )
+ post_layernorm_params = {
+ k.replace("vision_model.post_layernorm.", ""): v
+ for k, v in model_pretrained.items()
+ if "vision_model.post_layernorm." in k
+ }
+ self.post_layernorm.load_state_dict(post_layernorm_params)
+ visual_projection_params = {
+ k.replace("visual_projection.", ""): v
+ for k, v in model_pretrained.items()
+ if "visual_projection." in k
+ }
+ self.visual_projection.load_state_dict(visual_projection_params)
+
+ @classmethod
+ def from_pretrained(
+ cls, pretrained_model_name_or_path: Optional[Union[str, os.PathLike]], **kwargs
+ ):
+ cfg_path = os.path.join(pretrained_model_name_or_path, "config.json")
+ with open(cfg_path, "r") as f:
+ config = json.load(f)
+ model = cls(
+ hidden_size=config["hidden_size"],
+ projection_dim=config["projection_dim"],
+ layer_norm_eps=config["layer_norm_eps"],
+ )
+ model.load_state_dict_from_pretrained(pretrained_model_name_or_path)
+ return model
+
+ def forward(self, data):
+ last_hidden_state = data
+ pooled_output = last_hidden_state[:, 0, :]
+ pooled_output = self.post_layernorm(pooled_output)
+ # image_embeds = self.visual_projection(pooled_output)
+ return pooled_output
+
+
+class OriginLastHiddenState2ImageEmbd(OriginLastHiddenState2Poolout):
+ def __init__(self, hidden_size: int, projection_dim: int, layer_norm_eps: float):
+ super().__init__(hidden_size, projection_dim, layer_norm_eps)
+
+ def forward(self, data):
+ pooled_output = super().forward(data)
+ image_embeds = self.visual_projection(pooled_output)
+ return image_embeds
+
+
+class VerstailSDLastHiddenState2ImageEmb(OriginLastHiddenState2ImageEmbd):
+ def __init__(self, hidden_size: int, projection_dim: int, layer_norm_eps: float):
+ super().__init__(hidden_size, projection_dim, layer_norm_eps)
+
+ def forward(self, data):
+ embeds = self.post_layernorm(data)
+ embeds = self.visual_projection(embeds)
+ embeds_pooled = embeds[:, 0:1]
+ embeds = embeds / torch.norm(embeds_pooled, dim=-1, keepdim=True)
+ return embeds
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/controlnet.py b/MuseV/MMCM/mmcm/vision/feature_extractor/controlnet.py
new file mode 100644
index 0000000000000000000000000000000000000000..43696fcc4730fa9723c245b624f913201e5ef074
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/controlnet.py
@@ -0,0 +1,1019 @@
+from copy import deepcopy
+import inspect
+from typing import Any, Callable, Dict, List, Literal, Tuple, Union
+import warnings
+import os
+import random
+
+import h5py
+
+from diffusers.image_processor import VaeImageProcessor
+import cv2
+from einops import rearrange, repeat
+import numpy as np
+import torch
+from torch import nn
+from PIL import Image
+import controlnet_aux
+from diffusers.models.controlnet import ControlNetModel
+from diffusers.pipelines.controlnet.multicontrolnet import MultiControlNetModel
+
+from controlnet_aux.dwpose import draw_pose, pose2map, candidate2pose
+
+from ..process.image_process import dynamic_crop_resize_image
+
+from ..utils.data_type_util import convert_images
+from ...data.emb.h5py_emb import save_value_with_h5py
+from ...data.extract_feature.base_extract_feature import BaseFeatureExtractor
+import json
+
+
+def json_serializer(obj):
+ if isinstance(obj, np.ndarray):
+ return obj.tolist()
+ return obj
+
+
+import time
+
+
+def controlnet_tile_processor(img, **kwargs):
+ return img
+
+
+class ControlnetProcessor(object):
+ def __init__(
+ self,
+ detector_name: str,
+ detector_id: str = None,
+ filename: str = None,
+ cache_dir: str = None,
+ device: str = "cpu",
+ dtype: torch.dtype = torch.float32,
+ processor_params: Dict = None,
+ processor_name: str = None,
+ ) -> None:
+ self.detector_name = detector_name
+ self.detector_id = detector_id
+ self.processor_name = processor_name
+ if detector_name is None:
+ self.processor = None
+ self.processor_params = {}
+ if isinstance(processor_name, str) and "tile" in processor_name:
+ self.processor = controlnet_tile_processor
+ else:
+ processor_cls = controlnet_aux.__dict__[detector_name]
+ processor_cls_argspec = inspect.getfullargspec(processor_cls.__init__)
+ self.processor_params = (
+ processor_params if processor_params is not None else {}
+ )
+ if not hasattr(processor_cls, "from_pretrained"):
+ self.processor = processor_cls()
+ else:
+ self.processor = processor_cls.from_pretrained(
+ detector_id,
+ cache_dir=cache_dir,
+ filename=filename,
+ **self.processor_params,
+ )
+ if hasattr(self.processor, "to"):
+ self.processor = self.processor.to(device=device)
+ self.device = device
+ self.dtype = dtype
+
+ def __call__(
+ self,
+ data: Union[
+ Image.Image, List[Image.Image], str, List[str], np.ndarray, torch.Tensor
+ ],
+ data_channel_order: str,
+ target_width: int = None,
+ target_height: int = None,
+ return_type: Literal["pil", "np", "torch"] = "np",
+ return_data_channel_order: str = "b h w c",
+ processor_params: Dict = None,
+ input_rgb_order: str = "rgb",
+ return_rgb_order: str = "rgb",
+ ) -> Union[np.ndarray, torch.Tensor]:
+ # TODO: 目前采用二选一的方式,后续可以改进为增量更新
+ processor_params = processor_params if processor_params is not None else {}
+ data = convert_images(
+ data,
+ return_type="pil",
+ input_rgb_order=input_rgb_order,
+ return_rgb_order=return_rgb_order,
+ data_channel_order=data_channel_order,
+ )
+ height, width = data[0].height, data[0].width
+ if target_width is None:
+ target_width = width
+ if target_height is None:
+ target_height = height
+
+ data = [
+ dynamic_crop_resize_image(
+ image, target_height=target_height, target_width=target_width
+ )
+ for image in data
+ ]
+ if self.processor is not None:
+ data = [self.processor(image, **processor_params) for image in data]
+
+ # return_pose_only (bool): if true, only return pose keypoints in array format
+ if "return_pose_only" in processor_params.keys():
+ if (
+ self.detector_name == "DWposeDetector"
+ and processor_params["return_pose_only"]
+ ):
+ # (18, 2)
+ # (1, 18)
+ # (2, 21, 2)
+ # (1, 68, 2)
+ # j=json.dumps(data)
+ # json_str = json.dumps(data, default=json_serializer)
+ # return json_str
+ # print(len(data))
+
+ item_lsit = []
+ for candidate, subset in data:
+ # candidate shape (1, 134, 2)
+ # subset (1, 134)
+ # print(candidate.shape)
+ # print(subset.shape)
+ subset = np.expand_dims(subset, -1)
+ item = np.concatenate([candidate, subset], -1)
+ # print(item.shape)
+ max_num = 20
+ if item.shape[0] > max_num:
+ item = item[:max_num]
+
+ if item.shape[0] < max_num:
+ pad_num = max_num - item.shape[0]
+ item = np.pad(item, ((0, pad_num), (0, 0), (0, 0)))
+ # print(item.shape)
+ # print()
+
+ item_lsit.append(item)
+
+ return np.stack(item_lsit, axis=0) # b, num_candidates, 134, 3
+
+ if return_type == "pil":
+ return data
+ data = np.stack([np.asarray(image) for image in data], axis=0)
+ if return_data_channel_order != "b h w c":
+ data = rearrange(data, "b h w c -> {}".format(return_data_channel_order))
+ if return_type == "np":
+ return data
+ if return_type == "torch":
+ data = torch.from_numpy(data)
+ return data
+
+
+class MultiControlnetProcessor(object):
+ def __init__(self, processors: List[ControlnetProcessor]) -> None:
+ self.processors = processors
+
+ def __call__(
+ self,
+ data: Union[
+ Image.Image, List[Image.Image], str, List[str], np.ndarray, torch.Tensor
+ ],
+ data_channel_order: str,
+ target_width: int = None,
+ target_height: int = None,
+ return_type: Literal["pil", "np", "torch"] = "np",
+ return_data_channel_order: str = "b h w c",
+ processor_params: List[Dict] = None,
+ input_rgb_order: str = "rgb",
+ return_rgb_order: str = "rgb",
+ ) -> Union[np.ndarray, torch.Tensor]:
+ if processor_params is not None:
+ assert isinstance(
+ processor_params, list
+ ), f"type of datas should be list, but given {type(datas)}"
+ assert len(processor_params) == len(
+ self.processors
+ ), f"length of datas({len(processor_params)}) be same as of {len(self.processors)}"
+ datas = [
+ processor(
+ data=data,
+ data_channel_order=data_channel_order,
+ target_height=target_height,
+ target_width=target_width,
+ return_type=return_type,
+ return_data_channel_order=return_data_channel_order,
+ input_rgb_order=input_rgb_order,
+ processor_params=processor_params[i],
+ )
+ for i, processor in enumerate(self.processors)
+ ]
+ return datas
+
+
+class ControlnetFeatureExtractor(BaseFeatureExtractor):
+ def __init__(
+ self,
+ model_path: str,
+ detector_name: str,
+ detector_id: str,
+ device: str = "cpu",
+ dtype=torch.float32,
+ name: str = None,
+ # /group/30065/users/public/muse/models/stable-diffusion-v1-5/vae/config.json
+ vae_config_block_out_channels: int = 4,
+ processor_params: Dict = None,
+ filename=None,
+ cache_dir: str = None,
+ ):
+ super().__init__(device, dtype, name)
+ self.model_path = model_path
+ self.processor = ControlnetProcessor(
+ detector_name=detector_name,
+ detector_id=detector_id,
+ filename=filename,
+ cache_dir=cache_dir,
+ device=device,
+ dtype=dtype,
+ )
+ self.vae_scale_factor = 2 ** (vae_config_block_out_channels - 1)
+ self.control_image_processor = VaeImageProcessor(
+ vae_scale_factor=self.vae_scale_factor,
+ do_convert_rgb=True,
+ do_normalize=False,
+ )
+ self.controlnet = ControlNetModel.from_pretrained(
+ model_path,
+ ).to(device=device, dtype=dtype)
+ self.detector_name = detector_name
+
+ def emb_name(self, width, height):
+ return "{}_w={}_h={}_emb".format(self.name, width, height)
+
+ def prepare_image(
+ self,
+ image, # b c t h w
+ width,
+ height,
+ ):
+ if isinstance(image, np.ndarray):
+ image = torch.from_numpy(image)
+ if image.ndim == 5:
+ image = rearrange(image, "b c t h w-> (b t) c h w")
+ if height is None:
+ height = image.shape[-2]
+ if width is None:
+ width = image.shape[-1]
+ width, height = (
+ x - x % self.control_image_processor.vae_scale_factor
+ for x in (width, height)
+ )
+ image = image / 255.0
+ # image = torch.nn.functional.interpolate(image, size=(height, width))
+ do_normalize = self.control_image_processor.config.do_normalize
+ if image.min() < 0:
+ warnings.warn(
+ "Passing `image` as torch tensor with value range in [-1,1] is deprecated. The expected value range for image tensor is [0,1] "
+ f"when passing as pytorch tensor or numpy Array. You passed `image` with value range [{image.min()},{image.max()}]",
+ FutureWarning,
+ )
+ do_normalize = False
+ if do_normalize:
+ image = self.control_image_processor.normalize(image)
+ return image
+
+ def extract_images(
+ self,
+ data: Union[str, List[str], Image.Image, List[Image.Image], np.ndarray],
+ target_width: int = None,
+ target_height: int = None,
+ return_type: str = "numpy",
+ data_channel_order: str = "b h w c",
+ processor_params: Dict = None,
+ input_rgb_order: str = "rgb",
+ return_rgb_order: str = "rgb",
+ ) -> Union[np.ndarray, torch.Tensor]:
+ data = self.processor(
+ data,
+ data_channel_order=data_channel_order,
+ target_height=target_height,
+ target_width=target_width,
+ return_type="torch",
+ processor_params=processor_params,
+ return_data_channel_order="b c h w",
+ input_rgb_order=input_rgb_order,
+ return_rgb_order=return_rgb_order,
+ )
+
+ # return_pose_only (bool): if true, only return pose keypoints in array format
+ if "return_pose_only" in processor_params.keys():
+ if (
+ self.detector_name == "DWposeDetector"
+ and processor_params["return_pose_only"]
+ ):
+ return data
+ batch = self.prepare_image(image=data, width=target_width, height=target_height)
+
+ with torch.no_grad():
+ batch = batch.to(self.device, dtype=self.dtype)
+ emb = self.controlnet.controlnet_cond_embedding(batch)
+ if return_type == "numpy":
+ emb = emb.cpu().numpy()
+
+ return emb
+
+ def extract_video(
+ self,
+ video_dataset,
+ target_width: int = None,
+ target_height: int = None,
+ return_type: str = "numpy",
+ processor_params: Dict = None,
+ input_rgb_order: str = "rgb",
+ return_rgb_order: str = "rgb",
+ ) -> Union[np.ndarray, torch.Tensor]:
+ embs = []
+ sample_indexs = []
+ with torch.no_grad():
+ for i, (batch, batch_index) in enumerate(video_dataset):
+ # print(f"============== extract img begin")
+ # print(batch.shape)
+ t0 = time.time()
+ emb = self.extract_images(
+ data=batch,
+ target_width=target_width,
+ target_height=target_height,
+ return_type=return_type,
+ processor_params=processor_params,
+ input_rgb_order=input_rgb_order,
+ return_rgb_order=return_rgb_order,
+ )
+ torch.cuda.synchronize()
+ t1 = time.time()
+
+ # print(f"============== extract img end TIME COST:{t1-t0}\n")
+
+ embs.append(emb)
+ sample_indexs.extend(batch_index)
+
+ sample_indexs = np.array(sample_indexs)
+
+ # return_pose_only (bool): if true, only return pose keypoints in array format
+ if "return_pose_only" in processor_params.keys():
+ if (
+ self.detector_name == "DWposeDetector"
+ and processor_params["return_pose_only"]
+ ):
+ embs = np.concatenate(embs, axis=0)
+ return sample_indexs, embs
+
+ if return_type == "numpy":
+ embs = np.concatenate(embs, axis=0)
+ elif return_type == "torch":
+ embs = torch.concat(embs, dim=0)
+ sample_indexs = torch.from_numpy(sample_indexs)
+ return sample_indexs, embs
+
+ def extract(
+ self,
+ data: Union[str, List[str]],
+ data_type: Literal["image", "video"],
+ return_type: str = "numpy",
+ save_emb_path: str = None,
+ save_type: str = "h5py",
+ emb_key: str = "emb",
+ sample_index_key: str = "sample_indexs",
+ insert_name_to_key: bool = False,
+ overwrite: bool = False,
+ target_width: int = None,
+ target_height: int = None,
+ save_sample_index: bool = True,
+ processor_params: Dict = None,
+ input_rgb_order: str = "rgb",
+ return_rgb_order: str = "rgb",
+ **kwargs,
+ ) -> Union[np.ndarray, torch.tensor]:
+ if self.name is not None and insert_name_to_key:
+ emb_key = f"{self.name}_{emb_key}"
+ sample_index_key = f"{self.name}_{sample_index_key}"
+ if save_emb_path is not None and os.path.exists(save_emb_path):
+ with h5py.File(save_emb_path, "r") as f:
+ if not overwrite and emb_key in f and sample_index_key in f:
+ return None
+
+ if data_type == "image":
+ emb = self.extract_images(
+ data=data,
+ return_type=return_type,
+ target_height=target_height,
+ target_width=target_width,
+ processor_params=processor_params,
+ input_rgb_order=input_rgb_order,
+ return_rgb_order=return_rgb_order,
+ )
+ if save_emb_path is None:
+ return emb
+ else:
+ raise NotImplementedError("save images emb")
+ elif data_type == "video":
+ sample_indexs, emb = self.extract_video(
+ video_dataset=data,
+ return_type=return_type,
+ processor_params=processor_params,
+ input_rgb_order=input_rgb_order,
+ return_rgb_order=return_rgb_order,
+ target_height=target_height,
+ target_width=target_width,
+ **kwargs,
+ )
+ if save_emb_path is None:
+ return sample_indexs, emb
+ else:
+ if save_type == "h5py":
+ self.save_video_emb_with_h5py(
+ save_emb_path=save_emb_path,
+ emb=emb,
+ emb_key=emb_key,
+ sample_indexs=sample_indexs,
+ sample_index_key=sample_index_key,
+ save_sample_index=save_sample_index,
+ overwrite=overwrite,
+ )
+ return sample_indexs, emb
+ else:
+ raise ValueError(f"only support save_type={save_type}")
+
+ @staticmethod
+ def save_video_emb_with_h5py(
+ save_emb_path: str,
+ emb: np.ndarray = None,
+ emb_key: str = "emb",
+ sample_indexs: np.ndarray = None,
+ sample_index_key: str = "sample_indexs",
+ overwrite: bool = False,
+ save_sample_index: bool = True,
+ ) -> h5py.File:
+ save_value_with_h5py(save_emb_path, value=emb, key=emb_key, overwrite=overwrite)
+ if save_sample_index:
+ save_value_with_h5py(
+ save_emb_path,
+ value=sample_indexs,
+ key=sample_index_key,
+ overwrite=overwrite,
+ dtype=np.uint32,
+ )
+
+
+def get_controlnet_params(
+ controlnet_names: Union[
+ Literal[
+ "pose",
+ "pose_body",
+ "pose_hand",
+ "pose_face",
+ "pose_hand_body",
+ "pose_hand_face",
+ "pose_all",
+ "dwpose",
+ "canny",
+ "hed",
+ "hed_scribble",
+ "depth",
+ "pidi",
+ "normal_bae",
+ "lineart",
+ "lineart_anime",
+ "zoe",
+ "sam",
+ "mobile_sam",
+ "leres",
+ "content",
+ "face_detector",
+ ],
+ List[str],
+ ],
+ detect_resolution: int = None,
+ image_resolution: int = None,
+ include_body: bool = False,
+ include_hand: bool = False,
+ include_face: bool = False,
+ hand_and_face: bool = None,
+) -> Dict:
+ """通过简单 字符串参数就选择配置好的完整controlnet参数
+
+ Args:
+ controlnet_conds (Union[ Literal[ "pose", "canny", "hed", "hed_scribble", "depth", "pidi", "normal_bae", "lineart", "lineart_anime", "zoe", "sam", "mobile_sam", "leres", "content", "face_detector", ], List[str], ]): _description_
+ detect_resolution (int, optional): controlnet_aux图像处理需要的参数,尽量是64的整倍数. Defaults to None.
+ image_resolution (int, optional): controlnet_aux图像处理需要的参数,尽量是64的整倍数. Defaults to None.
+ include_body (bool, optional): controlnet 是否包含身体. Defaults to False.
+ hand_and_face (bool, optional): pose controlnet 是否包含头和身体. Defaults to False.
+
+ Returns:
+ Dict: ControlnetProcessor需要的字典参数
+ """
+ controlnet_cond_maps = {
+ "pose": {
+ "middle": "pose",
+ "detector_name": "OpenposeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_openpose",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ "include_body": include_body,
+ "include_hand": include_hand,
+ "include_face": include_face,
+ "hand_and_face": hand_and_face,
+ },
+ },
+ "pose_body": {
+ "middle": "pose",
+ "detector_name": "OpenposeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_openpose",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ "include_body": True,
+ "include_hand": False,
+ "include_face": False,
+ "hand_and_face": False,
+ },
+ },
+ "pose_hand": {
+ "middle": "pose",
+ "detector_name": "OpenposeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_openpose",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ "include_body": False,
+ "include_hand": True,
+ "include_face": False,
+ "hand_and_face": False,
+ },
+ },
+ "pose_face": {
+ "middle": "pose",
+ "detector_name": "OpenposeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_openpose",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ "include_body": False,
+ "include_hand": False,
+ "include_face": True,
+ "hand_and_face": False,
+ },
+ },
+ "pose_hand_body": {
+ "middle": "pose",
+ "detector_name": "OpenposeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_openpose",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ "include_body": True,
+ "include_hand": True,
+ "include_face": False,
+ "hand_and_face": False,
+ },
+ },
+ "pose_hand_face": {
+ "middle": "pose",
+ "detector_name": "OpenposeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_openpose",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ "include_body": False,
+ "include_hand": True,
+ "include_face": True,
+ "hand_and_face": True,
+ },
+ },
+ "dwpose": {
+ "middle": "dwpose",
+ "detector_name": "DWposeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_openpose",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ },
+ "dwpose_face": {
+ "middle": "dwpose",
+ "detector_name": "DWposeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_openpose",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ "include_hand": False,
+ "include_body": False,
+ },
+ },
+ "dwpose_hand": {
+ "middle": "dwpose",
+ "detector_name": "DWposeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_openpose",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ "include_face": False,
+ "include_body": False,
+ },
+ },
+ "dwpose_body": {
+ "middle": "dwpose",
+ "detector_name": "DWposeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_openpose",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ "include_face": False,
+ "include_hand": False,
+ },
+ },
+ "dwpose_body_hand": {
+ "middle": "dwpose",
+ "detector_name": "DWposeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_openpose",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ "include_face": False,
+ "include_hand": True,
+ "include_body": True,
+ },
+ },
+ "canny": {
+ "middle": "canny",
+ "detector_name": "CannyDetector",
+ # "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_canny",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ },
+ "tile": {
+ "middle": "tile",
+ "detector_name": None,
+ "detector_id": None,
+ "controlnet_model_path": "lllyasviel/control_v11f1e_sd15_tile",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ "include_body": include_body,
+ "hand_and_face": hand_and_face,
+ },
+ },
+ # 隶属线条检测
+ "hed": {
+ "middle": "hed",
+ "detector_name": "HEDdetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/sd-controlnet-hed",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ },
+ "hed_scribble": {
+ "middle": "hed",
+ "detector_name": "HEDdetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_scribble",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ },
+ "depth": {
+ "middle": "depth",
+ "detector_name": "MidasDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11f1p_sd15_depth",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ },
+ "pidi": {
+ "middle": "pidi",
+ "detector_name": "PidiNetDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11f1p_sd15_depth",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ },
+ "normal_bae": {
+ "middle": "normal_bae",
+ "detector_name": "NormalBaeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_normalbae",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ },
+ "lineart": {
+ "middle": "lineart",
+ "detector_name": "LineartDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_lineart",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ "coarse": True,
+ },
+ },
+ "lineart_anime": {
+ "middle": "lineart_anime",
+ "detector_name": "LineartAnimeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15s2_lineart_anime",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ },
+ "zoe": {
+ "middle": "zoe",
+ "detector_name": "ZoeDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11f1p_sd15_depth",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ },
+ "sam": {
+ "middle": "sam",
+ "detector_name": "SamDetector",
+ "detector_id": "ybelkada/segment-anything",
+ "processor_cls_params": {"subfolder": "checkpoints"},
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_seg",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ },
+ "mobile_sam": {
+ "middle": "mobile_sam",
+ "detector_name": "SamDetector",
+ "detector_id": "dhkim2810/MobileSAM",
+ "processor_cls_params": {
+ "subfolder": "checkpoints",
+ "model_type": "vit_t",
+ "filename": "mobile_sam.pt",
+ },
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_seg",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ },
+ "leres": {
+ "middle": "leres",
+ "detector_name": "LeresDetector",
+ "detector_id": "lllyasviel/Annotators",
+ "controlnet_model_path": "lllyasviel/control_v11f1p_sd15_depth",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ },
+ # error
+ "content": {
+ "middle": "content",
+ "detector_name": "ContentShuffleDetector",
+ "controlnet_model_path": "lllyasviel/control_v11e_sd15_shuffle",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ },
+ "face_detector": {
+ "middle": "face_detector",
+ "detector_name": "MediapipeFaceDetector",
+ "processor_params": {
+ "detect_resolution": detect_resolution,
+ "image_resolution": image_resolution,
+ },
+ "controlnet_model_path": "lllyasviel/control_v11p_sd15_openpose",
+ },
+ }
+
+ def complete(dct):
+ if "detector_id" not in dct:
+ dct["detector_id"] = None
+ if "processor_cls_params" not in dct:
+ dct["processor_cls_params"] = None
+ return dct
+
+ if isinstance(controlnet_names, str):
+ return complete(controlnet_cond_maps[controlnet_names])
+ else:
+ params = [complete(controlnet_cond_maps[name]) for name in controlnet_names]
+ return params
+
+
+def load_controlnet_model(
+ controlnet_names: Union[str, List[str]],
+ device: str,
+ dtype=torch.dtype,
+ need_controlnet_processor: bool = True,
+ need_controlnet=True,
+ detect_resolution: int = None,
+ image_resolution: int = None,
+ include_body: bool = False,
+ include_face: bool = False,
+ include_hand: bool = False,
+ hand_and_face: bool = None,
+) -> Tuple[nn.Module, Callable, Dict]:
+ controlnet_params = get_controlnet_params(
+ controlnet_names,
+ detect_resolution=detect_resolution,
+ image_resolution=image_resolution,
+ include_body=include_body,
+ include_face=include_face,
+ hand_and_face=hand_and_face,
+ include_hand=include_hand,
+ )
+ if need_controlnet_processor:
+ if not isinstance(controlnet_params, list):
+ controlnet_processor = ControlnetProcessor(
+ detector_name=controlnet_params["detector_name"],
+ detector_id=controlnet_params["detector_id"],
+ processor_params=controlnet_params["processor_cls_params"],
+ device=device,
+ dtype=dtype,
+ processor_name=controlnet_params["middle"],
+ )
+ processor_params = controlnet_params["processor_params"]
+ else:
+ controlnet_processor = MultiControlnetProcessor(
+ [
+ ControlnetProcessor(
+ detector_name=controlnet_param["detector_name"],
+ detector_id=controlnet_param["detector_id"],
+ processor_params=controlnet_param["processor_cls_params"],
+ device=device,
+ dtype=dtype,
+ processor_name=controlnet_param["middle"],
+ )
+ for controlnet_param in controlnet_params
+ ]
+ )
+ processor_params = [
+ controlnet_param["processor_params"]
+ for controlnet_param in controlnet_params
+ ]
+ else:
+ controlnet_processor = None
+ processor_params = None
+
+ if need_controlnet:
+ if isinstance(controlnet_params, List):
+ # TODO: support MultiControlNetModel.save_pretrained str path
+ controlnet = MultiControlNetModel(
+ [
+ ControlNetModel.from_pretrained(d["controlnet_model_path"])
+ for d in controlnet_params
+ ]
+ )
+ else:
+ controlnet_model_path = controlnet_params["controlnet_model_path"]
+ controlnet = ControlNetModel.from_pretrained(controlnet_model_path)
+ controlnet = controlnet.to(device=device, dtype=dtype)
+ else:
+ controlnet = None
+
+ return controlnet, controlnet_processor, processor_params
+
+
+def prepare_image(
+ image, # b c t h w
+ image_processor: Callable,
+ width=None,
+ height=None,
+ return_type: Literal["numpy", "torch"] = "numpy",
+):
+ if isinstance(image, List) and isinstance(image[0], str):
+ raise NotImplementedError
+ if isinstance(image, List) and isinstance(image[0], np.ndarray):
+ image = np.concatenate(image, axis=0)
+ if isinstance(image, np.ndarray):
+ image = torch.from_numpy(image)
+ if image.ndim == 5:
+ image = rearrange(image, "b c t h w-> (b t) c h w")
+ if height is None:
+ height = image.shape[-2]
+ if width is None:
+ width = image.shape[-1]
+ width, height = (x - x % image_processor.vae_scale_factor for x in (width, height))
+ if height != image.shape[-2] or width != image.shape[-1]:
+ image = torch.nn.functional.interpolate(
+ image, size=(height, width), mode="bilinear"
+ )
+ image = image.to(dtype=torch.float32) / 255.0
+ do_normalize = image_processor.config.do_normalize
+ if image.min() < 0:
+ warnings.warn(
+ "Passing `image` as torch tensor with value range in [-1,1] is deprecated. The expected value range for image tensor is [0,1] "
+ f"when passing as pytorch tensor or numpy Array. You passed `image` with value range [{image.min()},{image.max()}]",
+ FutureWarning,
+ )
+ do_normalize = False
+
+ if do_normalize:
+ image = image_processor.normalize(image)
+ if return_type == "numpy":
+ image = image.numpy()
+ return image
+
+
+class PoseKPs2ImgConverter(object):
+ def __init__(
+ self,
+ target_width: int,
+ target_height: int,
+ num_candidates: int = 10,
+ image_processor: Callable = None,
+ include_body: bool = True,
+ include_face: bool = False,
+ hand_and_face: bool = None,
+ include_hand: bool = True,
+ ) -> None:
+ self.target_width = target_width
+ self.target_height = target_height
+ self.num_candidates = num_candidates
+ self.image_processor = image_processor
+ self.include_body = include_body
+ self.include_face = include_face
+ self.hand_and_face = hand_and_face
+ self.include_hand = include_hand
+
+ def __call__(self, kps: np.array) -> Any:
+ # draw pose
+ # (b, max_num=10, 134, 3) last dim, x,y,score
+ num_candidates = 0
+ for idx_t in range(self.num_candidates):
+ if np.sum(kps[:, idx_t, :, :]) == 0:
+ num_candidates = idx_t
+ break
+ if num_candidates > 0:
+ kps = kps[:, 0:num_candidates, :, :]
+ candidate = kps[..., :2]
+ subset = kps[..., 2]
+
+ poses = [
+ candidate2pose(
+ candidate[i],
+ subset[i],
+ include_body=self.include_body,
+ include_face=self.include_face,
+ hand_and_face=self.hand_and_face,
+ include_hand=self.include_hand,
+ )
+ for i in range(candidate.shape[0])
+ ]
+ pose_imgs = [
+ pose2map(
+ pose,
+ self.target_height,
+ self.target_width,
+ min(self.target_height, self.target_width),
+ min(self.target_height, self.target_width),
+ )
+ for pose in poses
+ ]
+ pose_imgs = np.stack(pose_imgs, axis=0) # b h w c
+ else:
+ pose_imgs = np.zeros(
+ shape=(kps.shape[0], self.target_height, self.target_width, 3),
+ dtype=np.uint8,
+ )
+ pose_imgs = rearrange(pose_imgs, "b h w c -> b c h w")
+
+ if self.image_processor is not None:
+ pose_imgs = prepare_image(
+ image=pose_imgs,
+ width=self.target_width,
+ height=self.target_height,
+ image_processor=self.image_processor,
+ return_type="numpy",
+ )
+
+ return pose_imgs
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/insight_face_extractor.py b/MuseV/MMCM/mmcm/vision/feature_extractor/insight_face_extractor.py
new file mode 100644
index 0000000000000000000000000000000000000000..4c732d4309edd95f5e4ada3c8c6bda2cd1dc5f6c
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/insight_face_extractor.py
@@ -0,0 +1,260 @@
+import os
+import time
+from typing import Literal, Union, List, Tuple
+from tqdm import tqdm
+
+from PIL import Image
+
+from transformers import (
+ CLIPVisionModelWithProjection,
+ CLIPImageProcessor,
+)
+
+import h5py
+import torch
+import numpy as np
+
+from ...data.extract_feature.base_extract_feature import BaseFeatureExtractor
+from ...data.emb.h5py_emb import save_value_with_h5py
+
+from ..process.image_process import dynamic_crop_resize_image
+from ..utils.data_type_util import convert_images
+
+from .clip_vision_extractor import ImageClipVisionFeatureExtractorV2
+
+
+class InsightFaceExtractor(BaseFeatureExtractor):
+ """选择clip的image_embeds,一张图像的输出特征是N,根据模型的选择可能是512、768、1024
+
+ Args:
+ BaseFeatureExtractor (_type_): _description_
+ """
+
+ def __init__(
+ self,
+ pretrained_model_name_or_path: str,
+ name: str = None,
+ device: str = "cpu",
+ dtype=torch.float32,
+ model_name: str = "buffalo_l",
+ allowed_modules: List[str] = ["detection", "recognition"],
+ providers: List[str] = ["CUDAExecutionProvider", "CPUExecutionProvider"],
+ need_align_face: bool = False,
+ ):
+ from insightface.app import FaceAnalysis
+
+ super().__init__(device, dtype, name)
+ self.pretrained_model_name_or_path = pretrained_model_name_or_path
+ self.extractor = FaceAnalysis(
+ name=model_name,
+ root=pretrained_model_name_or_path,
+ allowed_modules=allowed_modules,
+ providers=providers,
+ )
+ self.extractor.prepare(ctx_id=0, det_size=(640, 640))
+ self.need_align_face = need_align_face
+
+ def extract_images(
+ self,
+ data: Union[str, List[str], Image.Image, List[Image.Image], np.ndarray],
+ target_width: int = None,
+ target_height: int = None,
+ return_type: str = "numpy",
+ input_rgb_order: str = "rgb",
+ ) -> Union[np.ndarray, torch.Tensor]:
+ data = convert_images(
+ data,
+ return_type="pil",
+ input_rgb_order=input_rgb_order,
+ return_rgb_order="bgr",
+ )
+ if target_height is not None and target_width is not None:
+ data = [
+ dynamic_crop_resize_image(
+ image,
+ target_height=target_height,
+ target_width=target_width,
+ )
+ for image in data
+ ]
+ data = [np.array(x.convert("RGB"))[:, :, ::-1] for x in data]
+ with torch.no_grad():
+ faces = [self.extractor.get(x) for x in data]
+
+ emb = [self.get_target_emb(x) for x in faces]
+ if self.need_align_face:
+ from insightface.utils import face_align
+
+ align_face_image = [
+ face_align.norm_crop(x, landmark=faces[i][0].kps, image_size=224)
+ for i, x in enumerate(data)
+ ]
+ else:
+ align_face_image = None
+ emb = np.concatenate(np.expand_dims(emb, axis=0), axis=0)
+ if return_type == "torch":
+ emb = torch.from_numpy(emb).to(device=self.device)
+ return emb, align_face_image
+
+ def get_target_emb(self, data):
+ outputs = data[0]["embedding"]
+ return outputs
+
+ def extract_video(
+ self,
+ video_dataset,
+ target_width: int = None,
+ target_height: int = None,
+ return_type: str = "numpy",
+ track_performance: bool = False,
+ input_rgb_order: str = "rgb",
+ ) -> Union[np.ndarray, torch.Tensor]:
+ embs = []
+ sample_indexs = []
+ if track_performance:
+ performance = {}
+ if self.need_align_face:
+ align_face_images = []
+ else:
+ align_face_images = None
+ with torch.no_grad():
+ for i, (batch, batch_index) in enumerate(video_dataset):
+ # TODO: 现阶段复用hugging face diffusers img2img pipeline中的抽取代码,
+ # 由于该代码目前只支持Image的预处理,故先将numpy.ndarray转换成PIL.Image
+ batch = [Image.fromarray(batch[b_i]) for b_i in range(len(batch))]
+ emb, align_face_image = self.extract_images(
+ data=batch,
+ target_width=target_width,
+ target_height=target_height,
+ return_type=return_type,
+ input_rgb_order=input_rgb_order,
+ )
+ embs.append(emb)
+ sample_indexs.extend(batch_index)
+ if self.need_align_face:
+ align_face_images.append(align_face_image)
+ sample_indexs = np.array(sample_indexs)
+ if return_type == "numpy":
+ embs = np.concatenate(embs, axis=0)
+ elif return_type == "torch":
+ embs = torch.concat(embs)
+ sample_indexs = torch.from_numpy(sample_indexs)
+ return sample_indexs, embs, align_face_images
+
+ def extract(
+ self,
+ data: Union[str, List[str]],
+ data_type: Literal["image", "video"],
+ return_type: str = "numpy",
+ save_emb_path: str = None,
+ save_type: str = "h5py",
+ emb_key: str = "image_embeds",
+ sample_index_key: str = "sample_indexs",
+ insert_name_to_key: bool = False,
+ overwrite: bool = False,
+ input_rgb_order: str = "rgb",
+ save_sample_index: bool = True,
+ **kwargs,
+ ) -> Union[np.ndarray, torch.tensor]:
+ if self.name is not None and insert_name_to_key:
+ emb_key = f"{self.name}_{emb_key}"
+ sample_index_key = f"{self.name}_{sample_index_key}"
+ if save_emb_path is not None and os.path.exists(save_emb_path):
+ with h5py.File(save_emb_path, "r") as f:
+ if not overwrite and emb_key in f and sample_index_key in f:
+ return None
+
+ if data_type == "image":
+ emb = self.extract_images(
+ data=data,
+ return_type=return_type,
+ input_rgb_order=input_rgb_order,
+ **kwargs,
+ )
+ if save_emb_path is None:
+ return emb
+ else:
+ raise NotImplementedError("save images emb")
+ elif data_type == "video":
+ sample_indexs, emb = self.extract_video(
+ video_dataset=data,
+ return_type=return_type,
+ input_rgb_order=input_rgb_order,
+ **kwargs,
+ )
+ if save_emb_path is None:
+ return sample_indexs, emb
+ else:
+ if save_type == "h5py":
+ self.save_video_emb_with_h5py(
+ save_emb_path=save_emb_path,
+ emb=emb,
+ emb_key=emb_key,
+ sample_indexs=sample_indexs,
+ sample_index_key=sample_index_key,
+ overwrite=overwrite,
+ save_sample_index=save_sample_index,
+ )
+ return sample_indexs, emb
+ else:
+ raise ValueError(f"only support save_type={save_type}")
+
+ @staticmethod
+ def save_images_emb_with_h5py(
+ save_emb_path: str,
+ emb: np.ndarray = None,
+ emb_key: str = "image_embeds",
+ ) -> h5py.File:
+ save_value_with_h5py(save_emb_path, value=emb, key=emb_key)
+
+ @staticmethod
+ def save_video_emb_with_h5py(
+ save_emb_path: str,
+ emb: np.ndarray = None,
+ emb_key: str = "image_embeds",
+ sample_indexs: np.ndarray = None,
+ sample_index_key: str = "sample_indexs",
+ overwrite: bool = False,
+ save_sample_index: bool = True,
+ ) -> h5py.File:
+ save_value_with_h5py(
+ save_emb_path,
+ value=emb,
+ key=emb_key,
+ overwrite=overwrite,
+ dtype=np.float16,
+ )
+ if save_sample_index:
+ save_value_with_h5py(
+ save_emb_path,
+ value=sample_indexs,
+ key=sample_index_key,
+ overwrite=overwrite,
+ dtype=np.uint32,
+ )
+
+
+class InsightFaceExtractorNormEmb(InsightFaceExtractor):
+ def __init__(
+ self,
+ pretrained_model_name_or_path: str,
+ name: str = None,
+ device: str = "cpu",
+ dtype=torch.float32,
+ model_name: str = "buffalo_l",
+ allowed_modules: List[str] = ["detection", "recognition"],
+ providers: List[str] = ["CUDAExecutionProvider", "CPUExecutionProvider"],
+ ):
+ super().__init__(
+ pretrained_model_name_or_path,
+ name,
+ device,
+ dtype,
+ model_name,
+ allowed_modules,
+ providers,
+ )
+
+ def get_target_emb(self, data):
+ outputs = data[0].normed_embedding
+ return outputs
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/taiyi_prefictor.py b/MuseV/MMCM/mmcm/vision/feature_extractor/taiyi_prefictor.py
new file mode 100755
index 0000000000000000000000000000000000000000..acab9d029bd82cfbd188484c73e3ae9267620618
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/taiyi_prefictor.py
@@ -0,0 +1,135 @@
+import os
+import time
+from typing import Union, List, Tuple
+from tqdm import tqdm
+
+from PIL import Image
+from transformers import (
+ BertForSequenceClassification,
+ BertTokenizer,
+ CLIPProcessor,
+ CLIPModel,
+)
+import torch
+import numpy as np
+from numpy import ndarray
+from moviepy.editor import VideoFileClip
+
+from ..utils.path_util import get_video_signature
+from ..video_map.video_map import VideoMap
+from ..data.video_dataset import MoviepyVideoDataset, SequentialDataset
+from ...utils.itertools_util import generate_sample_idxs
+
+
+class ClipVisionFeatureExtractor(object):
+ def __init__(self, model_name: str, local_file: bool = True, device: str = "cpu"):
+ if device:
+ self.device = device
+ else:
+ self.device = "cuda" if torch.cuda.is_available() else "cpu"
+ self.clip_model = (
+ CLIPModel.from_pretrained(model_name, local_files_only=local_file)
+ .eval()
+ .to(self.device)
+ )
+ self.processor = CLIPProcessor.from_pretrained(
+ model_name, local_files_only=local_file
+ )
+
+ def image(self, img_paths):
+ image = self.processor(
+ images=[Image.open(i) for i in img_paths], return_tensors="pt"
+ ).to(self.device)
+ with torch.no_grad():
+ image_features = self.clip_model.get_image_features(**image)
+ image_features = image_features / image_features.norm(dim=-1, keepdim=True)
+ return image_features.detach().cpu().numpy()
+
+ def __call__(self, image):
+ return self.image(image)
+
+ def predict_images(
+ self, image: Union[Image.Image, List[Image.Image], torch.Tensor]
+ ) -> np.ndarray:
+ if isinstance(image, str):
+ image = [image]
+ if isinstance(image, list) and isinstance(image[0], str):
+ image = [Image.open(i) for i in image]
+ image = self.processor(images=image, return_tensors="pt").to(self.device)
+ with torch.no_grad():
+ image_features = self.clip_model.get_image_features(**image)
+ image_features = image_features / image_features.norm(dim=-1, keepdim=True)
+ return image_features.detach().cpu().numpy()
+
+ def predict_clip(
+ self, clip: Union[Image.Image, List[Image.Image], torch.Tensor], batch_size: int
+ ) -> ndarray:
+ features = []
+ num = len(clip)
+ windows = generate_sample_idxs(
+ num, window_size=batch_size, step=batch_size, drop_last=False
+ )
+ for i, window in enumerate(windows):
+ sub_clip = clip[window]
+ feature = self.predict_images(sub_clip)
+ features.append(feature)
+ feature = np.concatenate(features, axis=0)
+ return features
+
+ def predict_video(
+ video: Union[str, SequentialDataset],
+ video_map: VideoMap,
+ vf_extractor,
+ bbx_extr,
+ time_size: int = None,
+ step: int = None,
+ overlap: int = None,
+ sample_rate: int = None,
+ drop_last: bool = False,
+ max_frame_num_per_clip: int = 5,
+ ):
+ # prepare video
+ if isinstance(video, str):
+ video = MoviepyVideoDataset(
+ video,
+ time_size=time_size,
+ step=step,
+ overlap=overlap,
+ drop_last=drop_last,
+ sample_rate=sample_rate,
+ )
+ if video_map.meta_info.content_box != video.content_box:
+ video.content_box = video_map.content_box
+ fps = 1
+ max_frame_num = 5
+ select_frame_idx = []
+ select_frame_clip = []
+ for i in range(len(video_map.clipseq)):
+ clip = video_map.clipseq[i]
+ if clip["cliptype"] == "transition":
+ continue
+ select_frame_num = int(min(np.ceil(clip["duration"] * fps), max_frame_num))
+ clip_total_frame_num = clip["frame_end"] - clip["frame_start"]
+ frame_duration = clip_total_frame_num // (select_frame_num + 1)
+ for j in range(select_frame_num):
+ select_frame_idx.append(clip["frame_start"] + (j + 1) * frame_duration)
+ select_frame_clip.append(i)
+
+ return video_map
+
+
+class TaiyiVisionFeatureExtractor(ClipVisionFeatureExtractor):
+ def __init__(
+ self,
+ model_name: str = "clip-vit-large-patch14",
+ local_file: bool = True,
+ device: str = "cpu",
+ ):
+ """_summary_
+
+ Args:
+ model_name (str, optional): clip-vit-large-patch14 or openai/clip-vit-large-patch14. Defaults to "clip-vit-large-patch14".
+ local_file (bool, optional): _description_. Defaults to True.
+ device (str, optional): _description_. Defaults to 'cpu'.
+ """
+ super().__init__(model_name, local_file, device)
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/vae_extractor.py b/MuseV/MMCM/mmcm/vision/feature_extractor/vae_extractor.py
new file mode 100755
index 0000000000000000000000000000000000000000..6280282869dceff160169702792304452b91dd81
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/vae_extractor.py
@@ -0,0 +1,218 @@
+import sys
+from multiprocessing.pool import Pool
+import os
+import logging
+from typing import Union, List, Tuple, Literal
+
+import torch
+import numpy as np
+import pandas as pd
+import h5py
+import diffusers
+from diffusers import AutoencoderKL
+from diffusers.image_processor import VaeImageProcessor
+from einops import rearrange
+from PIL import Image
+from transformers import CLIPTextModel, CLIPTokenizer
+
+from ...data.extract_feature.base_extract_feature import BaseFeatureExtractor
+from ...data.emb.h5py_emb import save_value_with_h5py
+
+from ..process.image_process import dynamic_resize_image, dynamic_crop_resize_image
+from ..utils.data_type_util import convert_images
+
+
+class VAEFeatureExtractor(BaseFeatureExtractor):
+ def __init__(
+ self,
+ pretrained_model_name_or_path: str,
+ name: str = None,
+ device: str = "cpu",
+ dtype=torch.float32,
+ ):
+ super().__init__(device, dtype, name)
+ self.pretrained_model_name_or_path = pretrained_model_name_or_path
+ vae = AutoencoderKL.from_pretrained(
+ pretrained_model_name_or_path, subfolder="vae"
+ )
+ vae.requires_grad_(False)
+ self.vae = vae.to(device=device, dtype=dtype)
+ vae_scale_factor = 2 ** (len(self.vae.config.block_out_channels) - 1)
+ self.image_processor = VaeImageProcessor(vae_scale_factor=vae_scale_factor)
+
+ def extract_images(
+ self,
+ data: Union[str, List[str], Image.Image, List[Image.Image], np.ndarray],
+ target_width: int = None,
+ target_height: int = None,
+ return_type: str = "numpy",
+ input_rgb_order: str = "rgb",
+ ) -> Union[np.ndarray, torch.Tensor]:
+ data = convert_images(data, return_type="pil", input_rgb_order=input_rgb_order)
+ if target_height is not None and target_width is not None:
+ data = [
+ dynamic_crop_resize_image(
+ image,
+ target_height=target_height,
+ target_width=target_width,
+ )
+ for image in data
+ ]
+ batch = self.image_processor.preprocess(data).to(
+ device=self.device, dtype=self.dtype
+ )
+ with torch.no_grad():
+ # print("batch", batch.shape, batch.dtype, batch.device, self.vae.device)
+ emb = self.vae.encoder(batch)
+ quant_emb = self.vae.quant_conv(emb)
+ if return_type == "numpy":
+ emb = emb.cpu().numpy()
+ quant_emb = quant_emb.cpu().numpy()
+ return emb, quant_emb
+
+ def extract_video(
+ self,
+ video_dataset,
+ target_width: int = None,
+ target_height: int = None,
+ return_type: str = "numpy",
+ track_performance: bool = False,
+ input_rgb_order: str = "rgb",
+ ) -> Union[np.ndarray, torch.Tensor]:
+ embs = []
+ quant_embs = []
+ sample_indexs = []
+ if track_performance:
+ performance = {}
+ with torch.no_grad():
+ for i, (batch, batch_index) in enumerate(video_dataset):
+ # TODO: 现阶段复用hugging face diffusers img2img pipeline中的抽取代码,
+ # 由于该代码目前只支持Image的预处理,故先将numpy.ndarray转换成PIL.Image
+ batch = [Image.fromarray(batch[b_i]) for b_i in range(len(batch))]
+ emb, quant_emb = self.extract_images(
+ data=batch,
+ target_width=target_width,
+ target_height=target_height,
+ return_type=return_type,
+ input_rgb_order=input_rgb_order,
+ )
+ embs.append(emb)
+ quant_embs.append(quant_emb)
+ sample_indexs.extend(batch_index)
+
+ sample_indexs = np.array(sample_indexs)
+ if return_type == "numpy":
+ embs = np.concatenate(embs, axis=0)
+ quant_embs = np.concatenate(quant_embs, axis=0)
+ elif return_type == "torch":
+ embs = torch.concat(embs)
+ quant_embs = torch.concat(quant_embs)
+ sample_indexs = torch.from_numpy(sample_indexs)
+ return sample_indexs, embs, quant_embs
+
+ def extract(
+ self,
+ data: Union[str, List[str]],
+ data_type: Literal["image", "video"],
+ return_type: str = "numpy",
+ save_emb_path: str = None,
+ save_type: str = "h5py",
+ emb_key: str = "encoder_emb",
+ quant_emb_key: str = "encoder_quant_emb",
+ sample_index_key: str = "sample_indexs",
+ insert_name_to_key: bool = False,
+ overwrite: bool = False,
+ save_sample_index: bool = True,
+ input_rgb_order: str = "rgb",
+ **kwargs,
+ ) -> Union[np.ndarray, torch.tensor]:
+ if self.name is not None and insert_name_to_key:
+ emb_key = f"{self.name}_{emb_key}"
+ quant_emb_key = f"{self.name}_{quant_emb_key}"
+ sample_index_key = f"{self.name}_{sample_index_key}"
+ if save_emb_path is not None and os.path.exists(save_emb_path):
+ with h5py.File(save_emb_path, "r") as f:
+ if (
+ not overwrite
+ and emb_key in f
+ and quant_emb_key in f
+ and sample_index_key in f
+ ):
+ return None
+
+ if data_type == "image":
+ emb, quant_emb = self.extract_images(
+ data=data,
+ return_type=return_type,
+ input_rgb_order=input_rgb_order,
+ **kwargs,
+ )
+ if save_emb_path is None:
+ return emb, quant_emb
+ else:
+ raise NotImplementedError("save images emb")
+ elif data_type == "video":
+ sample_indexs, emb, quant_emb = self.extract_video(
+ video_dataset=data,
+ return_type=return_type,
+ input_rgb_order=input_rgb_order,
+ **kwargs,
+ )
+ if save_emb_path is None:
+ return sample_indexs, emb, quant_emb
+ else:
+ if save_type == "h5py":
+ self.save_video_emb_with_h5py(
+ save_emb_path=save_emb_path,
+ emb=emb,
+ emb_key=emb_key,
+ quant_emb=quant_emb,
+ quant_emb_key=quant_emb_key,
+ sample_indexs=sample_indexs,
+ sample_index_key=sample_index_key,
+ save_sample_index=save_sample_index,
+ overwrite=overwrite,
+ )
+ return sample_indexs, emb, quant_emb
+ else:
+ raise ValueError(f"only support save_type={save_type}")
+
+ @staticmethod
+ def save_images_emb_with_h5py(
+ save_emb_path: str,
+ emb: np.ndarray = None,
+ emb_key: str = "encoder_emb",
+ quant_emb: np.ndarray = None,
+ quant_emb_key: str = "encoder_quant_emb",
+ ) -> h5py.File:
+ save_value_with_h5py(save_emb_path, value=emb, key=emb_key)
+ save_value_with_h5py(save_emb_path, value=quant_emb, key=quant_emb_key)
+
+ @staticmethod
+ def save_video_emb_with_h5py(
+ save_emb_path: str,
+ emb: np.ndarray = None,
+ emb_key: str = "encoder_emb",
+ quant_emb: np.ndarray = None,
+ quant_emb_key: str = "encoder_quant_emb",
+ sample_indexs: np.ndarray = None,
+ sample_index_key: str = "sample_indexs",
+ overwrite: bool = False,
+ save_sample_index: bool = True,
+ ) -> h5py.File:
+ # save_value_with_h5py(save_emb_path, value=emb, key=emb_key, overwrite=overwrite)
+ if save_sample_index:
+ save_value_with_h5py(
+ save_emb_path,
+ value=quant_emb,
+ key=quant_emb_key,
+ overwrite=overwrite,
+ dtype=np.float16,
+ )
+ save_value_with_h5py(
+ save_emb_path,
+ value=sample_indexs,
+ key=sample_index_key,
+ overwrite=overwrite,
+ dtype=np.uint32,
+ )
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/README.md b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/README.md
new file mode 100755
index 0000000000000000000000000000000000000000..e64286ab7e0ae47180052d2fa8581629769f41ad
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/README.md
@@ -0,0 +1,41 @@
+# photoalbumn/video2music
+
+本项目为提交给vivo demo的视频和相册配乐中,召回音乐的代码。使用文澜图文匹配技术,视频配乐随机选取5帧图像,相册配乐使用相册中的所有图片,文本为音乐歌词。
+每张图片均召回100首歌曲,最后对这100首歌曲的score分数进行排序,输出最终的100首歌曲。热度版本即改变歌曲热度池子范围。
+
+
+# 使用
+### 搭建环境
+
+```
+# 环境要求
+lmdb==0.99
+timm==0.4.12
+easydict==1.9
+pandas==1.2.4
+jsonlines==2.0.0
+tqdm==4.60.0
+torchvision==0.8.2
+numpy==1.20.2
+torch==1.7.1
+transformers==4.5.1
+msgpack_numpy==0.4.7.1
+msgpack_python==0.5.6
+Pillow==8.3.1
+PyYAML==5.4.1
+detectron2==0.3+cu102
+```
+
+### 视频配乐
+```
+bash vivo_video2music.sh
+```
+
+### 相册配乐
+```
+bash vivo_photoalbumn2music.sh
+```
+
+### 注意
+代码需分成独立的3步走。首先提取歌曲歌词,提取完歌词后,提取歌曲和视频特征,最后才进行检索。
+
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/__init__.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/README.md b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/README.md
new file mode 100755
index 0000000000000000000000000000000000000000..4c46fb6c43ca05268499c7f0868263e65396c045
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/README.md
@@ -0,0 +1,80 @@
+# Bottom Up Attention For Application
+
+This object detection tool implements from [bottom-up-attention](https://github.com/peteanderson80/bottom-up-attention) project and [bottom-up-attention.pytorch](https://github.com/MILVLG/bottom-up-attention.pytorch) project. This tool has been used in the application *AI's Imaginary World* for **BriVL**'s data preprocessing.
+
+**The environment of this repo is easier to build, for the dependency on the cython version in the original repo is fixed**
+
+
+
+## Requirements
+
+- [Python](https://www.python.org/downloads/) >= 3.6
+- [PyTorch](http://pytorch.org/) >= 1.4
+- [Cuda](https://developer.nvidia.com/cuda-toolkit) >= 9.2 and [cuDNN](https://developer.nvidia.com/cudnn)
+- [Detectron2](https://github.com/facebookresearch/detectron2/releases/tag/v0.3) <= 0.3
+
+**Important: The version of Detectron2 should be 0.3 or below.**
+
+**Install Pre-Built Detectron2 (Linux only)**
+
+Choose from this table to install [v0.3 (Nov 2020)](https://github.com/facebookresearch/detectron2/releases):
+
+ CUDA | torch 1.7 | torch 1.6 | torch 1.5 | 11.0 | install python -m pip install detectron2 -f \
+ https://dl.fbaipublicfiles.com/detectron2/wheels/cu110/torch1.7/index.html
+ | | |
10.2 | install python -m pip install detectron2 -f \
+ https://dl.fbaipublicfiles.com/detectron2/wheels/cu102/torch1.7/index.html
+ | install python -m pip install detectron2 -f \
+ https://dl.fbaipublicfiles.com/detectron2/wheels/cu102/torch1.6/index.html
+ | install python -m pip install detectron2 -f \
+ https://dl.fbaipublicfiles.com/detectron2/wheels/cu102/torch1.5/index.html
+ |
10.1 | install python -m pip install detectron2 -f \
+ https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/torch1.7/index.html
+ | install python -m pip install detectron2 -f \
+ https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/torch1.6/index.html
+ | install python -m pip install detectron2 -f \
+ https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/torch1.5/index.html
+ |
9.2 | install python -m pip install detectron2 -f \
+ https://dl.fbaipublicfiles.com/detectron2/wheels/cu92/torch1.7/index.html
+ | install python -m pip install detectron2 -f \
+ https://dl.fbaipublicfiles.com/detectron2/wheels/cu92/torch1.6/index.html
+ | install python -m pip install detectron2 -f \
+ https://dl.fbaipublicfiles.com/detectron2/wheels/cu92/torch1.5/index.html
+ |
cpu | install python -m pip install detectron2 -f \
+ https://dl.fbaipublicfiles.com/detectron2/wheels/cpu/torch1.7/index.html
+ | install python -m pip install detectron2 -f \
+ https://dl.fbaipublicfiles.com/detectron2/wheels/cpu/torch1.6/index.html
+ | install python -m pip install detectron2 -f \
+ https://dl.fbaipublicfiles.com/detectron2/wheels/cpu/torch1.5/index.html
+ |
+
+
+
+*Anaconda is recommended.*
+
+## Download Model
+Put the pre-trained model in ./weights. You can download the pre-trained object detection model from [here](https://drive.google.com/file/d/1oquCwDEvuJPeU7pyPg-Yudj5-8ZxtG0W/view?usp=sharing).
+## Test BUA tool
+
+Test image has been saved in ./test_data, Test BUA tool with following command:
+
+```
+python3 bbox_extractor.py --img_path test_data/test.png --out_path test_data/test.npz
+```
+
+
+## QR Code of AI's Imaginary World
+*AI's Imaginary World* is developed based on the **BriVL** model, You can use the QR code below to experience [AI's Imaginary World](http://buling.wudaoai.cn/).
+
+![bling](./img/bling_300x300.jpeg)
+
+## More Resources
+
+[Source Code of BriVL 1.0](https://github.com/BAAI-WuDao/BriVL)
+
+[Model of BriVL 1.0\*](https://wudaoai.cn/model/detail/BriVL)
+
+[Online API of BriVL 1.0](https://github.com/chuhaojin/WenLan-api-document)
+
+[Online API of BriVL 2.0](https://wudaoai.cn/model/detail/BriVL)
+
+\* indicates an application is needed.
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_extractor.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_extractor.py
new file mode 100755
index 0000000000000000000000000000000000000000..c275ac7898bfd1bf793f4502ef8c04d447926d98
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_extractor.py
@@ -0,0 +1,113 @@
+# -*- coding:UTF8 -*-
+
+"""Image bounding-box extraction process."""
+
+import os
+import sys
+import sys
+import cv2
+import numpy as np
+import glob
+
+import torch
+from detectron2.checkpoint import DetectionCheckpointer
+from detectron2.config import get_cfg
+from detectron2.engine import default_setup
+from detectron2.engine import DefaultTrainer
+from detectron2.layers.nms import nms
+
+from .bbox_utils.extract_utils import get_image_blob
+from .bbox_models import add_config
+from .bbox_models.bua.box_regression import BUABoxes
+from .bbox_models.bua import add_bottom_up_attention_config
+
+class BboxExtractor:
+ def __init__(self, cfg_file, gpu_id = 0):
+
+ self.cfg_file = cfg_file
+ self.gpu_id = gpu_id
+ self.cfg = get_cfg()
+ add_bottom_up_attention_config(self.cfg, True)
+ self.cfg.merge_from_file(self.cfg_file)
+ self.cfg.freeze()
+ default_setup(self.cfg, None)
+
+ self.bbox_extract_model = DefaultTrainer.build_model(self.cfg)
+# self.bbox_extract_model.cuda(gpu_id)
+ bbox_extract_model_dict = self.bbox_extract_model.state_dict()
+ bbox_extract_checkpoint_dict = torch.load(self.cfg.MODEL.WEIGHTS, map_location=torch.device('cuda:0'))['model']
+ bbox_extract_checkpoint_dict = {k:v for k, v in bbox_extract_checkpoint_dict.items() if k in bbox_extract_model_dict}
+ bbox_extract_model_dict.update(bbox_extract_checkpoint_dict)
+ self.bbox_extract_model.load_state_dict(bbox_extract_model_dict)
+ # self.bbox_extract_model = torch.nn.DataParallel(self.bbox_extract_model, device_ids=self.gpus)
+ self.bbox_extract_model.eval()
+
+ def clean_bbox(self, dataset_dict, boxes, scores):
+ MIN_BOXES = self.cfg.MODEL.BUA.EXTRACTOR.MIN_BOXES
+ MAX_BOXES = self.cfg.MODEL.BUA.EXTRACTOR.MAX_BOXES
+ CONF_THRESH = self.cfg.MODEL.BUA.EXTRACTOR.CONF_THRESH
+
+ scores = scores[0]
+ boxes = boxes[0]
+ num_classes = scores.shape[1]
+ boxes = BUABoxes(boxes.reshape(-1, 4))
+ boxes.clip((dataset_dict['image'].shape[1]/dataset_dict['im_scale'], dataset_dict['image'].shape[2]/dataset_dict['im_scale']))
+ boxes = boxes.tensor.view(-1, num_classes*4) # R x C x 4
+
+ cls_boxes = torch.zeros((boxes.shape[0], 4))
+ for idx in range(boxes.shape[0]):
+ cls_idx = torch.argmax(scores[idx, 1:]) + 1
+ cls_boxes[idx, :] = boxes[idx, cls_idx * 4:(cls_idx + 1) * 4]
+
+ max_conf = torch.zeros((scores.shape[0])).to(scores.device)
+ for cls_ind in range(1, num_classes):
+ cls_scores = scores[:, cls_ind]
+ keep = nms(cls_boxes, cls_scores, 0.3)
+ max_conf[keep] = torch.where(cls_scores[keep] > max_conf[keep],
+ cls_scores[keep],
+ max_conf[keep])
+
+ keep_boxes = torch.argsort(max_conf, descending=True)[:MAX_BOXES]
+ image_bboxes = cls_boxes[keep_boxes]
+
+ return image_bboxes
+
+ def extract_bboxes(self, img_path):
+ if type(img_path)==str:
+ im = cv2.imread(img_path)
+ else:
+ im = img_path
+ if im is None:
+ print("img is None!")
+ return None
+ else:
+ dataset_dict = get_image_blob(im, self.cfg.MODEL.PIXEL_MEAN)
+ with torch.set_grad_enabled(False):
+ boxes, scores = self.bbox_extract_model([dataset_dict])
+ boxes = [box.cpu() for box in boxes]
+ scores = [score.cpu() for score in scores]
+ boxes = self.clean_bbox(dataset_dict, boxes, scores)
+
+ return boxes # boxes type tensor
+
+if __name__ == '__main__':
+ import argparse
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--img_path', type=str, dest="img_path", default="/data1/sxhong/video_image")
+ parser.add_argument('--out_path', type=str, dest="output_file", default="./data/shuishoupai_bbox")
+ args = parser.parse_args()
+ image_paths = glob.glob(os.path.join(args.img_path, '*'))
+
+ for image_path in image_paths:
+ save_file = os.path.join(args.output_file, image_path.split('/')[-1].split('.')[0] + '.npz')
+
+ print(save_file)
+ abs_path = os.path.dirname(os.path.abspath(__file__))
+ bbx_extr = BboxExtractor(os.path.join(abs_path, 'configs/bua-caffe/extract-bua-caffe-r101.yaml'))
+ bboxes = bbx_extr.extract_bboxes(image_path)
+ np.savez_compressed(save_file, bbox=bboxes)
+ print(code)
+ np_bbox = bboxes.numpy().astype(np.int32)
+# print(np_bbox)
+ print(bboxes.shape)
+
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/__init__.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..09343694d2667db18606bc72604abcba8632ad83
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/__init__.py
@@ -0,0 +1,9 @@
+from .bua import add_bottom_up_attention_config
+
+def add_config(args, cfg):
+ if args.mode == "caffe":
+ add_bottom_up_attention_config(cfg, True)
+ elif args.mode == "detectron2":
+ add_bottom_up_attention_config(cfg)
+ else:
+ raise Exception("detection model not supported: {}".format(args.model))
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/__init__.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..51b7d0db76ee4bf8c4f8e3e7fbbcd8341697ada3
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/__init__.py
@@ -0,0 +1,5 @@
+from .config import add_bottom_up_attention_config
+from .backbone import build_bua_resnet_backbone
+from .rcnn import GeneralizedBUARCNN
+from .roi_heads import BUACaffeRes5ROIHeads
+from .rpn import StandardBUARPNHead, BUARPN
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/backbone.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/backbone.py
new file mode 100755
index 0000000000000000000000000000000000000000..c535798f9af0af15ae06ff0ae30a498839d68787
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/backbone.py
@@ -0,0 +1,276 @@
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+import fvcore.nn.weight_init as weight_init
+from torch import nn
+import torch.nn.functional as F
+
+from detectron2.layers import Conv2d, FrozenBatchNorm2d, get_norm, BatchNorm2d
+from detectron2.modeling import BACKBONE_REGISTRY, ResNet, make_stage
+from detectron2.modeling.backbone.resnet import BottleneckBlock, DeformBottleneckBlock, ResNetBlockBase
+
+from .layers.wrappers import Conv2dv2
+
+__all__ = ["BUABasicStem", "BUABasicStemv2", "build_bua_resnet_backbone"]
+
+class BUABasicStem(nn.Module):
+ def __init__(self, in_channels=3, out_channels=64, norm="BN"):
+ """
+ Args:
+ norm (str or callable): a callable that takes the number of
+ channels and return a `nn.Module`, or a pre-defined string
+ (one of {"FrozenBN", "BN", "GN"}).
+ """
+ super().__init__()
+ self.conv1 = Conv2d(
+ in_channels,
+ out_channels,
+ kernel_size=7,
+ stride=2,
+ padding=3,
+ bias=False,
+ norm=get_norm(norm, out_channels),
+ )
+ weight_init.c2_msra_fill(self.conv1)
+
+ def forward(self, x):
+ x = self.conv1(x)
+ x = F.relu_(x)
+ x = F.max_pool2d(x, kernel_size=3, stride=2, padding=0, ceil_mode=True)
+ return x
+
+ @property
+ def out_channels(self):
+ return self.conv1.out_channels
+
+ @property
+ def stride(self):
+ return 4 # = stride 2 conv -> stride 2 max pool
+
+class BUABasicStemv2(nn.Module):
+ def __init__(self, in_channels=3, out_channels=64, norm="BN"):
+ """
+ Args:
+ norm (str or callable): a callable that takes the number of
+ channels and return a `nn.Module`, or a pre-defined string
+ (one of {"FrozenBN", "BN", "GN"}).
+ """
+ super().__init__()
+ self.norm = BatchNorm2d(in_channels, eps=2e-5)
+ self.conv1 = Conv2d(
+ in_channels,
+ out_channels,
+ kernel_size=7,
+ stride=2,
+ padding=3,
+ bias=False,
+ norm=BatchNorm2d(out_channels, eps=2e-5),
+ )
+ # weight_init.c2_msra_fill(self.norm)
+ weight_init.c2_msra_fill(self.conv1)
+
+ def forward(self, x):
+ x = self.norm(x)
+ x = self.conv1(x)
+ x = F.relu_(x)
+ x = F.max_pool2d(x, kernel_size=3, stride=2, padding=0, ceil_mode=True)
+ return x
+
+ @property
+ def out_channels(self):
+ return self.conv1.out_channels
+
+ @property
+ def stride(self):
+ return 4 # = stride 2 conv -> stride 2 max pool
+
+@BACKBONE_REGISTRY.register()
+def build_bua_resnet_backbone(cfg, input_shape):
+ """
+ Create a ResNet instance from config.
+
+ Returns:
+ ResNet: a :class:`ResNet` instance.
+ """
+ # need registration of new blocks/stems?
+ norm = cfg.MODEL.RESNETS.NORM
+ if cfg.MODEL.BUA.RESNET_VERSION == 2:
+ stem = BUABasicStemv2(
+ in_channels=input_shape.channels,
+ out_channels=cfg.MODEL.RESNETS.STEM_OUT_CHANNELS,
+ )
+ else:
+ stem = BUABasicStem(
+ in_channels=input_shape.channels,
+ out_channels=cfg.MODEL.RESNETS.STEM_OUT_CHANNELS,
+ norm=norm,
+ )
+ freeze_at = cfg.MODEL.BACKBONE.FREEZE_AT
+
+ if freeze_at >= 1:
+ for p in stem.parameters():
+ p.requires_grad = False
+ stem = FrozenBatchNorm2d.convert_frozen_batchnorm(stem)
+
+ # fmt: off
+ out_features = cfg.MODEL.RESNETS.OUT_FEATURES
+ depth = cfg.MODEL.RESNETS.DEPTH
+ num_groups = cfg.MODEL.RESNETS.NUM_GROUPS
+ width_per_group = cfg.MODEL.RESNETS.WIDTH_PER_GROUP
+ bottleneck_channels = num_groups * width_per_group
+ in_channels = cfg.MODEL.RESNETS.STEM_OUT_CHANNELS
+ out_channels = cfg.MODEL.RESNETS.RES2_OUT_CHANNELS
+ stride_in_1x1 = cfg.MODEL.RESNETS.STRIDE_IN_1X1
+ res5_dilation = cfg.MODEL.RESNETS.RES5_DILATION
+ deform_on_per_stage = cfg.MODEL.RESNETS.DEFORM_ON_PER_STAGE
+ deform_modulated = cfg.MODEL.RESNETS.DEFORM_MODULATED
+ deform_num_groups = cfg.MODEL.RESNETS.DEFORM_NUM_GROUPS
+ # fmt: on
+ assert res5_dilation in {1, 2}, "res5_dilation cannot be {}.".format(res5_dilation)
+
+ num_blocks_per_stage = {50: [3, 4, 6, 3], 101: [3, 4, 23, 3], 152: [3, 8, 36, 3]}[depth]
+
+ stages = []
+
+ # Avoid creating variables without gradients
+ # It consumes extra memory and may cause allreduce to fail
+ out_stage_idx = [{"res2": 2, "res3": 3, "res4": 4, "res5": 5}[f] for f in out_features]
+ max_stage_idx = max(out_stage_idx)
+ for idx, stage_idx in enumerate(range(2, max_stage_idx + 1)):
+ dilation = res5_dilation if stage_idx == 5 else 1
+ first_stride = 1 if idx == 0 or (stage_idx == 5 and dilation == 2) else 2
+ stage_kargs = {
+ "num_blocks": num_blocks_per_stage[idx],
+ "first_stride": first_stride,
+ "in_channels": in_channels,
+ "bottleneck_channels": bottleneck_channels,
+ "out_channels": out_channels,
+ "num_groups": num_groups,
+ "norm": norm,
+ "stride_in_1x1": stride_in_1x1,
+ "dilation": dilation,
+ }
+ if deform_on_per_stage[idx]:
+ stage_kargs["block_class"] = DeformBottleneckBlock
+ stage_kargs["deform_modulated"] = deform_modulated
+ stage_kargs["deform_num_groups"] = deform_num_groups
+ else:
+ stage_kargs["block_class"] = BottleneckBlock if cfg.MODEL.BUA.RESNET_VERSION == 1 else BottleneckBlockv2
+ blocks = make_stage(**stage_kargs)
+ in_channels = out_channels
+ out_channels *= 2
+ bottleneck_channels *= 2
+
+ if freeze_at >= stage_idx:
+ for block in blocks:
+ block.freeze()
+ stages.append(blocks)
+ return ResNet(stem, stages, out_features=out_features)
+
+class BottleneckBlockv2(ResNetBlockBase):
+ def __init__(
+ self,
+ in_channels,
+ out_channels,
+ *,
+ bottleneck_channels,
+ stride=1,
+ num_groups=1,
+ norm="BN",
+ stride_in_1x1=False,
+ dilation=1,
+ ):
+ """
+ Args:
+ norm (str or callable): a callable that takes the number of
+ channels and return a `nn.Module`, or a pre-defined string
+ (one of {"FrozenBN", "BN", "GN"}).
+ stride_in_1x1 (bool): when stride==2, whether to put stride in the
+ first 1x1 convolution or the bottleneck 3x3 convolution.
+ """
+ super().__init__(in_channels, out_channels, stride)
+
+ if in_channels != out_channels:
+ self.shortcut = Conv2dv2(
+ in_channels,
+ out_channels,
+ kernel_size=1,
+ stride=stride,
+ bias=False,
+ norm=None,
+ )
+ else:
+ self.shortcut = None
+
+ # The original MSRA ResNet models have stride in the first 1x1 conv
+ # The subsequent fb.torch.resnet and Caffe2 ResNe[X]t implementations have
+ # stride in the 3x3 conv
+ stride_1x1, stride_3x3 = (stride, 1) if stride_in_1x1 else (1, stride)
+
+ self.conv1 = Conv2dv2(
+ in_channels,
+ bottleneck_channels,
+ kernel_size=1,
+ stride=stride_1x1,
+ bias=False,
+ norm=None,
+ )
+
+ self.conv2 = Conv2dv2(
+ bottleneck_channels,
+ bottleneck_channels,
+ kernel_size=3,
+ stride=stride_3x3,
+ padding=1 * dilation,
+ bias=False,
+ groups=num_groups,
+ dilation=dilation,
+ norm=BatchNorm2d(bottleneck_channels, eps=2e-5),
+ activation=F.relu_,
+ )
+
+ self.conv3 = Conv2dv2(
+ bottleneck_channels,
+ out_channels,
+ kernel_size=1,
+ bias=False,
+ norm=BatchNorm2d(bottleneck_channels, eps=2e-5),
+ activation=F.relu_,
+ )
+
+ for layer in [self.conv1, self.conv2, self.conv3, self.shortcut]:
+ if layer is not None: # shortcut can be None
+ weight_init.c2_msra_fill(layer)
+
+ self.norm = BatchNorm2d(in_channels, eps=2e-5)
+
+ # Zero-initialize the last normalization in each residual branch,
+ # so that at the beginning, the residual branch starts with zeros,
+ # and each residual block behaves like an identity.
+ # See Sec 5.1 in "Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour":
+ # "For BN layers, the learnable scaling coefficient γ is initialized
+ # to be 1, except for each residual block's last BN
+ # where γ is initialized to be 0."
+
+ # nn.init.constant_(self.conv3.norm.weight, 0)
+ # TODO this somehow hurts performance when training GN models from scratch.
+ # Add it as an option when we need to use this code to train a backbone.
+
+ def forward(self, x):
+ x_2 = self.norm(x)
+ x_2 = F.relu_(x_2)
+
+ out = self.conv1(x_2)
+ # out = F.relu_(out)
+
+ out = self.conv2(out)
+ # out = F.relu_(out)
+
+ out = self.conv3(out)
+
+ if self.shortcut is not None:
+ shortcut = self.shortcut(x_2)
+ else:
+ shortcut = x
+
+ out += shortcut
+ # out = F.relu_(out)
+ return out
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/box_regression.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/box_regression.py
new file mode 100755
index 0000000000000000000000000000000000000000..34fc16813be25ae25b40d80ec97b8030dc851e33
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/box_regression.py
@@ -0,0 +1,190 @@
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+import math
+import torch
+from detectron2.structures import Boxes
+from typing import List, Tuple, Union
+
+# Value for clamping large dw and dh predictions. The heuristic is that we clamp
+# such that dw and dh are no larger than what would transform a 16px box into a
+# 1000px box (based on a small anchor, 16px, and a typical image size, 1000px).
+_DEFAULT_SCALE_CLAMP = math.log(1000.0 / 16)
+
+
+__all__ = ["BUABoxes", "BUABox2BoxTransform"]
+
+class BUABoxes(Boxes):
+ """
+ This structure stores a list of boxes as a Nx4 torch.Tensor.
+ It supports some common methods about boxes
+ (`area`, `clip`, `nonempty`, etc),
+ and also behaves like a Tensor
+ (support indexing, `to(device)`, `.device`, and iteration over all boxes)
+
+ Attributes:
+ tensor: float matrix of Nx4.
+ """
+
+ BoxSizeType = Union[List[int], Tuple[int, int]]
+ def __init__(self, tensor: torch.Tensor):
+ super().__init__(tensor)
+
+ def clip(self, box_size: BoxSizeType) -> None:
+ """
+ NOTE: In order to be the same as bottom-up-attention network, we have
+ defined the new clip function.
+
+ Clip (in place) the boxes by limiting x coordinates to the range [0, width]
+ and y coordinates to the range [0, height].
+
+ Args:
+ box_size (height, width): The clipping box's size.
+ """
+ assert torch.isfinite(self.tensor).all(), "Box tensor contains infinite or NaN!"
+ TO_REMOVE = 1
+ h, w = box_size
+ self.tensor[:, 0].clamp_(min=0, max=w - TO_REMOVE)
+ self.tensor[:, 1].clamp_(min=0, max=h - TO_REMOVE)
+ self.tensor[:, 2].clamp_(min=0, max=w - TO_REMOVE)
+ self.tensor[:, 3].clamp_(min=0, max=h - TO_REMOVE)
+
+ def nonempty(self, threshold: int = 0) -> torch.Tensor:
+ """
+ NOTE: In order to be the same as bottom-up-attention network, we have
+ defined the new nonempty function.
+
+ Find boxes that are non-empty.
+ A box is considered empty, if either of its side is no larger than threshold.
+
+ Returns:
+ Tensor:
+ a binary vector which represents whether each box is empty
+ (False) or non-empty (True).
+ """
+ TO_REMOVE = 1
+ box = self.tensor
+ widths = box[:, 2] - box[:, 0] + TO_REMOVE
+ heights = box[:, 3] - box[:, 1] + TO_REMOVE
+ keep = (widths > threshold) & (heights > threshold)
+ return keep
+
+ def filter_boxes(self):
+ box = self.tensor
+ keep = (box[:, 3] > box[:, 1]) & (box[:, 2] > box[:, 0])
+ return keep
+
+ def __getitem__(self, item: Union[int, slice, torch.BoolTensor]) -> "Boxes":
+ """
+ Returns:
+ BUABoxes: Create a new :class:`BUABoxes` by indexing.
+
+ The following usage are allowed:
+ 1. `new_boxes = boxes[3]`: return a `Boxes` which contains only one box.
+ 2. `new_boxes = boxes[2:10]`: return a slice of boxes.
+ 3. `new_boxes = boxes[vector]`, where vector is a torch.BoolTensor
+ with `length = len(boxes)`. Nonzero elements in the vector will be selected.
+
+ Note that the returned Boxes might share storage with this Boxes,
+ subject to Pytorch's indexing semantics.
+ """
+ if isinstance(item, int):
+ return BUABoxes(self.tensor[item].view(1, -1))
+ b = self.tensor[item]
+ assert b.dim() == 2, "Indexing on Boxes with {} failed to return a matrix!".format(item)
+ return BUABoxes(b)
+
+class BUABox2BoxTransform(object):
+ """
+ The box-to-box transform defined in R-CNN. The transformation is parameterized
+ by 4 deltas: (dx, dy, dw, dh). The transformation scales the box's width and height
+ by exp(dw), exp(dh) and shifts a box's center by the offset (dx * width, dy * height).
+ """
+
+ def __init__(self, weights, scale_clamp=_DEFAULT_SCALE_CLAMP):
+ """
+ Args:
+ weights (4-element tuple): Scaling factors that are applied to the
+ (dx, dy, dw, dh) deltas. In Fast R-CNN, these were originally set
+ such that the deltas have unit variance; now they are treated as
+ hyperparameters of the system.
+ scale_clamp (float): When predicting deltas, the predicted box scaling
+ factors (dw and dh) are clamped such that they are <= scale_clamp.
+ """
+ self.weights = weights
+ self.scale_clamp = scale_clamp
+
+ def get_deltas(self, src_boxes, target_boxes):
+ """
+ Get box regression transformation deltas (dx, dy, dw, dh) that can be used
+ to transform the `src_boxes` into the `target_boxes`. That is, the relation
+ ``target_boxes == self.apply_deltas(deltas, src_boxes)`` is true (unless
+ any delta is too large and is clamped).
+
+ Args:
+ src_boxes (Tensor): source boxes, e.g., object proposals
+ target_boxes (Tensor): target of the transformation, e.g., ground-truth
+ boxes.
+ """
+ assert isinstance(src_boxes, torch.Tensor), type(src_boxes)
+ assert isinstance(target_boxes, torch.Tensor), type(target_boxes)
+
+ TO_REMOVE = 1 # TODO remove
+ src_widths = src_boxes[:, 2] - src_boxes[:, 0] + TO_REMOVE
+ src_heights = src_boxes[:, 3] - src_boxes[:, 1] + TO_REMOVE
+ src_ctr_x = src_boxes[:, 0] + 0.5 * src_widths
+ src_ctr_y = src_boxes[:, 1] + 0.5 * src_heights
+
+ target_widths = target_boxes[:, 2] - target_boxes[:, 0] + TO_REMOVE
+ target_heights = target_boxes[:, 3] - target_boxes[:, 1] + TO_REMOVE
+ target_ctr_x = target_boxes[:, 0] + 0.5 * target_widths
+ target_ctr_y = target_boxes[:, 1] + 0.5 * target_heights
+
+ wx, wy, ww, wh = self.weights
+ dx = wx * (target_ctr_x - src_ctr_x) / src_widths
+ dy = wy * (target_ctr_y - src_ctr_y) / src_heights
+ dw = ww * torch.log(target_widths / src_widths)
+ dh = wh * torch.log(target_heights / src_heights)
+
+ deltas = torch.stack((dx, dy, dw, dh), dim=1)
+ assert (src_widths > 0).all().item(), "Input boxes to Box2BoxTransform are not valid!"
+ return deltas
+
+ def apply_deltas(self, deltas, boxes):
+ """
+ Apply transformation `deltas` (dx, dy, dw, dh) to `boxes`.
+
+ Args:
+ deltas (Tensor): transformation deltas of shape (N, k*4), where k >= 1.
+ deltas[i] represents k potentially different class-specific
+ box transformations for the single box boxes[i].
+ boxes (Tensor): boxes to transform, of shape (N, 4)
+ """
+ assert torch.isfinite(deltas).all().item(), "Box regression deltas become infinite or NaN!"
+ boxes = boxes.to(deltas.dtype)
+
+ TO_REMOVE = 1 # TODO remove
+ widths = boxes[:, 2] - boxes[:, 0] + TO_REMOVE
+ heights = boxes[:, 3] - boxes[:, 1] + TO_REMOVE
+ ctr_x = boxes[:, 0] + 0.5 * widths
+ ctr_y = boxes[:, 1] + 0.5 * heights
+
+ wx, wy, ww, wh = self.weights
+ dx = deltas[:, 0::4] / wx
+ dy = deltas[:, 1::4] / wy
+ dw = deltas[:, 2::4] / ww
+ dh = deltas[:, 3::4] / wh
+
+ # Prevent sending too large values into torch.exp()
+ dw = torch.clamp(dw, max=self.scale_clamp)
+ dh = torch.clamp(dh, max=self.scale_clamp)
+
+ pred_ctr_x = dx * widths[:, None] + ctr_x[:, None]
+ pred_ctr_y = dy * heights[:, None] + ctr_y[:, None]
+ pred_w = torch.exp(dw) * widths[:, None]
+ pred_h = torch.exp(dh) * heights[:, None]
+
+ pred_boxes = torch.zeros_like(deltas)
+ pred_boxes[:, 0::4] = pred_ctr_x - 0.5 * pred_w # x1
+ pred_boxes[:, 1::4] = pred_ctr_y - 0.5 * pred_h # y1
+ pred_boxes[:, 2::4] = pred_ctr_x + 0.5 * pred_w # x2
+ pred_boxes[:, 3::4] = pred_ctr_y + 0.5 * pred_h # y2
+ return pred_boxes
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/config.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/config.py
new file mode 100755
index 0000000000000000000000000000000000000000..4852d4bd2de4e003461779fe0e01d83c17854321
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/config.py
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+
+from detectron2.config import CfgNode as CN
+
+
+def add_bottom_up_attention_config(cfg, caffe=False):
+ """
+ Add config for tridentnet.
+ """
+ _C = cfg
+
+ _C.MODEL.BUA = CN()
+ _C.MODEL.BUA.CAFFE = caffe
+ _C.MODEL.BUA.RESNET_VERSION = 1
+ _C.MODEL.BUA.ATTRIBUTE_ON = False
+ _C.MODEL.BUA.EXTRACT_FEATS = False
+
+ _C.MODEL.BUA.RPN = CN()
+ # out_channels of conv for bottom-up-attentions RPN.
+ _C.MODEL.BUA.RPN.CONV_OUT_CHANNELS = 512
+
+ _C.MODEL.BUA.EXTRACTOR = CN()
+
+ # EXTRACTOR.MODE {1: extract roi features, 2: extract bbox only ,3: extract roi features by gt_bbox}
+ _C.MODEL.BUA.EXTRACTOR.MODE = 2
+
+ # config of postprocessing in extractor
+ _C.MODEL.BUA.EXTRACTOR.MIN_BOXES = 10
+ _C.MODEL.BUA.EXTRACTOR.MAX_BOXES = 100
+ _C.MODEL.BUA.EXTRACTOR.CONF_THRESH = 0.2
+ _C.MODEL.BUA.EXTRACTOR.OUTPUT_DIR = ".output/"
+
+ _C.MODEL.BUA.ATTRIBUTE = CN()
+ _C.MODEL.BUA.ATTRIBUTE.NUM_CLASSES = 401
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/fast_rcnn.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/fast_rcnn.py
new file mode 100755
index 0000000000000000000000000000000000000000..a9b9d74aac8296e4b6b190d064d82790ca1716a9
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/fast_rcnn.py
@@ -0,0 +1,594 @@
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+import logging
+import numpy as np
+import torch
+from fvcore.nn import smooth_l1_loss
+from torch import nn
+from torch.nn import functional as F
+
+from detectron2.layers import cat
+from detectron2.structures import Instances
+from detectron2.utils.events import get_event_storage
+from detectron2.modeling.roi_heads import select_foreground_proposals
+from detectron2.modeling.roi_heads.fast_rcnn import fast_rcnn_inference, fast_rcnn_inference_single_image, FastRCNNOutputLayers
+
+from detectron2.layers.nms import batched_nms
+from .box_regression import BUABoxes
+
+logger = logging.getLogger(__name__)
+
+"""
+Shape shorthand in this module:
+
+ N: number of images in the minibatch
+ R: number of ROIs, combined over all images, in the minibatch
+ Ri: number of ROIs in image i
+ K: number of foreground classes. E.g.,there are 80 foreground classes in COCO.
+
+Naming convention:
+
+ deltas: refers to the 4-d (dx, dy, dw, dh) deltas that parameterize the box2box
+ transform (see :class:`box_regression.Box2BoxTransform`).
+
+ pred_class_logits: predicted class scores in [-inf, +inf]; use
+ softmax(pred_class_logits) to estimate P(class).
+
+ gt_classes: ground-truth classification labels in [0, K], where [0, K) represent
+ foreground object classes and K represents the background class.
+
+ pred_proposal_deltas: predicted box2box transform deltas for transforming proposals
+ to detection box predictions.
+
+ gt_proposal_deltas: ground-truth box2box transform deltas
+"""
+
+class BUACaffeFastRCNNOutputs(object):
+ """
+ A class that stores information about outputs of a Fast R-CNN head.
+ """
+
+ def __init__(
+ self, box2box_transform, pred_class_logits, pred_proposal_deltas, proposals, smooth_l1_beta, image_scales, attr_on=False
+ ):
+ """
+ Args:
+ box2box_transform (Box2BoxTransform/Box2BoxTransformRotated):
+ box2box transform instance for proposal-to-detection transformations.
+ pred_class_logits (Tensor): A tensor of shape (R, K + 1) storing the predicted class
+ logits for all R predicted object instances.
+ Each row corresponds to a predicted object instance.
+ pred_proposal_deltas (Tensor): A tensor of shape (R, K * B) or (R, B) for
+ class-specific or class-agnostic regression. It stores the predicted deltas that
+ transform proposals into final box detections.
+ B is the box dimension (4 or 5).
+ When B is 4, each row is [dx, dy, dw, dh (, ....)].
+ When B is 5, each row is [dx, dy, dw, dh, da (, ....)].
+ proposals (list[Instances]): A list of N Instances, where Instances i stores the
+ proposals for image i, in the field "proposal_boxes".
+ When training, each Instances must have ground-truth labels
+ stored in the field "gt_classes" and "gt_boxes".
+ smooth_l1_beta (float): The transition point between L1 and L2 loss in
+ the smooth L1 loss function. When set to 0, the loss becomes L1. When
+ set to +inf, the loss becomes constant 0.
+ """
+ self.box2box_transform = box2box_transform
+ self.num_preds_per_image = [len(p) for p in proposals]
+ self.pred_class_logits = pred_class_logits
+ self.pred_proposal_deltas = pred_proposal_deltas
+ self.smooth_l1_beta = smooth_l1_beta
+ self.image_scales = image_scales
+ self.attr_on = attr_on
+
+ box_type = type(proposals[0].proposal_boxes)
+ # cat(..., dim=0) concatenates over all images in the batch
+ self.proposals = box_type.cat([p.proposal_boxes for p in proposals])
+ assert not self.proposals.tensor.requires_grad, "Proposals should not require gradients!"
+ self.image_shapes = [x.image_size for x in proposals]
+
+ # The following fields should exist only when training.
+ if proposals[0].has("gt_boxes"):
+ self.gt_boxes = box_type.cat([p.gt_boxes for p in proposals])
+ assert proposals[0].has("gt_classes")
+ self.gt_classes = cat([p.gt_classes for p in proposals], dim=0)
+
+ def fast_rcnn_inference(self, boxes, scores, image_shapes, image_scales, score_thresh, nms_thresh, topk_per_image):
+ """
+ Call `fast_rcnn_inference_single_image` for all images.
+
+ Args:
+ boxes (list[Tensor]): A list of Tensors of predicted class-specific or class-agnostic
+ boxes for each image. Element i has shape (Ri, K * 4) if doing
+ class-specific regression, or (Ri, 4) if doing class-agnostic
+ regression, where Ri is the number of predicted objects for image i.
+ This is compatible with the output of :meth:`FastRCNNOutputs.predict_boxes`.
+ scores (list[Tensor]): A list of Tensors of predicted class scores for each image.
+ Element i has shape (Ri, K + 1), where Ri is the number of predicted objects
+ for image i. Compatible with the output of :meth:`FastRCNNOutputs.predict_probs`.
+ image_shapes (list[tuple]): A list of (width, height) tuples for each image in the batch.
+ score_thresh (float): Only return detections with a confidence score exceeding this
+ threshold.
+ nms_thresh (float): The threshold to use for box non-maximum suppression. Value in [0, 1].
+ topk_per_image (int): The number of top scoring detections to return. Set < 0 to return
+ all detections.
+
+ Returns:
+ instances: (list[Instances]): A list of N instances, one for each image in the batch,
+ that stores the topk most confidence detections.
+ kept_indices: (list[Tensor]): A list of 1D tensor of length of N, each element indicates
+ the corresponding boxes/scores index in [0, Ri) from the input, for image i.
+ """
+ result_per_image = [
+ self.fast_rcnn_inference_single_image(
+ boxes_per_image, scores_per_image, image_shape, image_scale, score_thresh, nms_thresh, topk_per_image
+ )
+ for scores_per_image, boxes_per_image, image_shape, image_scale in zip(scores, boxes, image_shapes, image_scales)
+ ]
+ return tuple(list(x) for x in zip(*result_per_image))
+
+ def fast_rcnn_inference_single_image(
+ self, boxes, scores, image_shape, image_scale, score_thresh, nms_thresh, topk_per_image
+ ):
+ """
+ Single-image inference. Return bounding-box detection results by thresholding
+ on scores and applying non-maximum suppression (NMS).
+
+ Args:
+ Same as `fast_rcnn_inference`, but with boxes, scores, and image shapes
+ per image.
+
+ Returns:
+ Same as `fast_rcnn_inference`, but for only one image.
+ """
+ scores = scores[:, 1:]
+ boxes = boxes[:, 4:]
+ num_bbox_reg_classes = boxes.shape[1] // 4
+ # Convert to Boxes to use the `clip` function ...
+ boxes = BUABoxes(boxes.reshape(-1, 4))
+ boxes.clip((image_shape[0]/image_scale, image_shape[1]/image_scale))
+ boxes = boxes.tensor.view(-1, num_bbox_reg_classes, 4) # R x C x 4
+
+ # Filter results based on detection scores
+ filter_mask = scores > score_thresh # R x K
+ # R' x 2. First column contains indices of the R predictions;
+ # Second column contains indices of classes.
+ filter_inds = filter_mask.nonzero()
+ if num_bbox_reg_classes == 1:
+ boxes = boxes[filter_inds[:, 0], 0]
+ else:
+ boxes = boxes[filter_mask]
+ scores = scores[filter_mask]
+
+ # Apply per-class NMS
+ keep = batched_nms(boxes, scores, filter_inds[:, 1], nms_thresh)
+ if topk_per_image >= 0:
+ keep = keep[:topk_per_image]
+ boxes, scores, filter_inds = boxes[keep], scores[keep], filter_inds[keep]
+
+ result = Instances(image_shape)
+ result.pred_boxes = BUABoxes(boxes)
+ result.scores = scores
+ result.pred_classes = filter_inds[:, 1]
+ return result, filter_inds[:, 0]
+
+ def predict_boxes(self):
+ """
+ Returns:
+ list[Tensor]: A list of Tensors of predicted class-specific or class-agnostic boxes
+ for each image. Element i has shape (Ri, K * B) or (Ri, B), where Ri is
+ the number of predicted objects for image i and B is the box dimension (4 or 5)
+ """
+ # Always use 1 image per worker during inference since this is the
+ # standard when reporting inference time in papers.
+ self.proposals.scale(1.0/self.image_scales[0], 1.0/self.image_scales[0])
+ num_pred = len(self.proposals)
+ B = self.proposals.tensor.shape[1]
+ K = self.pred_proposal_deltas.shape[1] // B
+ boxes = self.box2box_transform.apply_deltas(
+ self.pred_proposal_deltas,
+ self.proposals.tensor,
+ )
+ return boxes.view(num_pred, K * B).split(self.num_preds_per_image, dim=0)
+
+ def predict_probs(self):
+ """
+ Returns:
+ list[Tensor]: A list of Tensors of predicted class probabilities for each image.
+ Element i has shape (Ri, K + 1), where Ri is the number of predicted objects
+ for image i.
+ """
+ probs = F.softmax(self.pred_class_logits, dim=-1)
+ return probs.split(self.num_preds_per_image, dim=0)
+
+ def inference(self, score_thresh, nms_thresh, topk_per_image):
+ """
+ Args:
+ score_thresh (float): same as fast_rcnn_inference.
+ nms_thresh (float): same as fast_rcnn_inference.
+ topk_per_image (int): same as fast_rcnn_inference.
+ Returns:
+ list[Instances]: same as fast_rcnn_inference.
+ list[Tensor]: same as fast_rcnn_inference.
+ """
+ boxes = self.predict_boxes()
+ scores = self.predict_probs()
+ image_shapes = self.image_shapes
+ image_scales = self.image_scales
+
+ return self.fast_rcnn_inference(
+ boxes, scores, image_shapes, image_scales, score_thresh, nms_thresh, topk_per_image
+ )
+
+class BUACaffeFastRCNNOutputLayers(nn.Module):
+ """
+ Two linear layers for predicting Fast R-CNN outputs:
+ (1) proposal-to-detection box regression deltas
+ (2) classification scores
+ """
+
+ def __init__(self, input_size, num_classes, cls_agnostic_bbox_reg, box_dim=4, attr_on=False, num_attr_classes=401):
+ """
+ Args:
+ input_size (int): channels, or (channels, height, width)
+ num_classes (int): number of foreground classes
+ cls_agnostic_bbox_reg (bool): whether to use class agnostic for bbox regression
+ box_dim (int): the dimension of bounding boxes.
+ Example box dimensions: 4 for regular XYXY boxes and 5 for rotated XYWHA boxes
+ """
+ super(BUACaffeFastRCNNOutputLayers, self).__init__()
+
+ if not isinstance(input_size, int):
+ input_size = np.prod(input_size)
+ self.attr_on = attr_on
+
+ # The prediction layer for num_classes foreground classes and one background class
+ # (hence + 1)
+ self.cls_score = nn.Linear(input_size, num_classes)
+ num_bbox_reg_classes = 1 if cls_agnostic_bbox_reg else num_classes
+ self.bbox_pred = nn.Linear(input_size, num_bbox_reg_classes * box_dim)
+
+ nn.init.normal_(self.cls_score.weight, std=0.01)
+ nn.init.normal_(self.bbox_pred.weight, std=0.001)
+ for l in [self.cls_score, self.bbox_pred]:
+ nn.init.constant_(l.bias, 0)
+
+ if self.attr_on:
+ self.cls_embed = nn.Embedding(num_classes, 256)
+ self.attr_linear1 = nn.Linear(input_size + 256, 512)
+ self.attr_linear2 = nn.Linear(512, num_attr_classes)
+
+ nn.init.normal_(self.cls_embed.weight, std=0.01)
+ nn.init.normal_(self.attr_linear1.weight, std=0.01)
+ nn.init.normal_(self.attr_linear2.weight, std=0.01)
+ nn.init.constant_(self.attr_linear1.bias, 0)
+ nn.init.constant_(self.attr_linear2.bias, 0)
+
+ def forward(self, x, proposal_boxes=None):
+ if x.dim() > 2:
+ x = torch.flatten(x, start_dim=1)
+ scores = self.cls_score(x)
+ proposal_deltas = self.bbox_pred(x)
+
+ if self.attr_on:
+
+ # get labels and indices of proposals with foreground
+ all_labels = torch.argmax(scores, dim=1)
+
+ # get embeddings of indices using gt cls labels
+ cls_embed_out = self.cls_embed(all_labels)
+
+ # concat with fc7 feats
+ concat_attr = cat([x, cls_embed_out], dim=1)
+
+ # pass through attr head layers
+ fc_attr = self.attr_linear1(concat_attr)
+ attr_score = F.softmax(self.attr_linear2(F.relu(fc_attr)), dim=-1)
+ return scores, proposal_deltas, attr_score
+
+ return scores, proposal_deltas
+
+class BUADetection2FastRCNNOutputs(FastRCNNOutputLayers):
+ """
+ A class that stores information about outputs of a Fast R-CNN head.
+ """
+
+ def __init__(
+
+ self, box2box_transform, pred_class_logits, pred_proposal_deltas, proposals, smooth_l1_beta, attr_on=False, pred_attribute_logits=None, num_attr_classes=400, gt_attributes=None
+ ):
+ """
+ Args:
+ box2box_transform (Box2BoxTransform/Box2BoxTransformRotated):
+ box2box transform instance for proposal-to-detection transformations.
+ pred_class_logits (Tensor): A tensor of shape (R, K + 1) storing the predicted class
+ logits for all R predicted object instances.
+ Each row corresponds to a predicted object instance.
+ pred_proposal_deltas (Tensor): A tensor of shape (R, K * B) or (R, B) for
+ class-specific or class-agnostic regression. It stores the predicted deltas that
+ transform proposals into final box detections.
+ B is the box dimension (4 or 5).
+ When B is 4, each row is [dx, dy, dw, dh (, ....)].
+ When B is 5, each row is [dx, dy, dw, dh, da (, ....)].
+ pred_attribute_logits (Tensor:) A tensor of shape (R, C) storing the predicted attribute
+ logits for all R predicted object instances.
+ proposals (list[Instances]): A list of N Instances, where Instances i stores the
+ proposals for image i, in the field "proposal_boxes".
+ When training, each Instances must have ground-truth labels
+ stored in the field "gt_classes" and "gt_boxes".
+ smooth_l1_beta (float): The transition point between L1 and L2 loss in
+ the smooth L1 loss function. When set to 0, the loss becomes L1. When
+ set to +inf, the loss becomes constant 0.
+ """
+ self.attr_on = attr_on
+ self.box2box_transform = box2box_transform
+ self.num_preds_per_image = [len(p) for p in proposals]
+ self.pred_class_logits = pred_class_logits
+ self.pred_proposal_deltas = pred_proposal_deltas
+
+ if self.attr_on:
+ self.pred_attribute_logits = pred_attribute_logits
+ self.gt_attributes = gt_attributes
+ self.smooth_l1_beta = smooth_l1_beta
+
+ box_type = type(proposals[0].proposal_boxes)
+ # cat(..., dim=0) concatenates over all images in the batch
+ self.proposals = box_type.cat([p.proposal_boxes for p in proposals])
+ assert not self.proposals.tensor.requires_grad, "Proposals should not require gradients!"
+ self.image_shapes = [x.image_size for x in proposals]
+ self.num_attr_classes = num_attr_classes
+
+ # The following fields should exist only when training.
+ if proposals[0].has("gt_boxes"):
+ self.gt_boxes = box_type.cat([p.gt_boxes for p in proposals])
+ assert proposals[0].has("gt_classes")
+ self.gt_classes = cat([p.gt_classes for p in proposals], dim=0)
+
+ def _log_accuracy(self):
+ """
+ Log the accuracy metrics to EventStorage.
+ """
+ num_instances = self.gt_classes.numel()
+ pred_classes = self.pred_class_logits.argmax(dim=1)
+ bg_class_ind = self.pred_class_logits.shape[1] - 1
+
+ fg_inds = (self.gt_classes >= 0) & (self.gt_classes < bg_class_ind)
+ num_fg = fg_inds.nonzero().numel()
+ fg_gt_classes = self.gt_classes[fg_inds]
+ fg_pred_classes = pred_classes[fg_inds]
+
+ num_false_negative = (fg_pred_classes == bg_class_ind).nonzero().numel()
+ num_accurate = (pred_classes == self.gt_classes).nonzero().numel()
+ fg_num_accurate = (fg_pred_classes == fg_gt_classes).nonzero().numel()
+
+ storage = get_event_storage()
+ storage.put_scalar("fast_rcnn/cls_accuracy", num_accurate / num_instances)
+ if num_fg > 0:
+ storage.put_scalar("fast_rcnn/fg_cls_accuracy", fg_num_accurate / num_fg)
+ storage.put_scalar("fast_rcnn/false_negative", num_false_negative / num_fg)
+
+ def softmax_cross_entropy_loss(self):
+ """
+ Compute the softmax cross entropy loss for box classification.
+
+ Returns:
+ scalar Tensor
+ """
+ self._log_accuracy()
+ return F.cross_entropy(self.pred_class_logits, self.gt_classes, reduction="mean")
+
+ def smooth_l1_loss(self):
+ """
+ Compute the smooth L1 loss for box regression.
+
+ Returns:
+ scalar Tensor
+ """
+ gt_proposal_deltas = self.box2box_transform.get_deltas(
+ self.proposals.tensor, self.gt_boxes.tensor
+ )
+ box_dim = gt_proposal_deltas.size(1) # 4 or 5
+ cls_agnostic_bbox_reg = self.pred_proposal_deltas.size(1) == box_dim
+ device = self.pred_proposal_deltas.device
+
+ bg_class_ind = self.pred_class_logits.shape[1] - 1
+
+ # Box delta loss is only computed between the prediction for the gt class k
+ # (if 0 <= k < bg_class_ind) and the target; there is no loss defined on predictions
+ # for non-gt classes and background.
+ # Empty fg_inds produces a valid loss of zero as long as the size_average
+ # arg to smooth_l1_loss is False (otherwise it uses torch.mean internally
+ # and would produce a nan loss).
+ fg_inds = torch.nonzero((self.gt_classes >= 0) & (self.gt_classes < bg_class_ind)).squeeze(
+ 1
+ )
+ if cls_agnostic_bbox_reg:
+ # pred_proposal_deltas only corresponds to foreground class for agnostic
+ gt_class_cols = torch.arange(box_dim, device=device)
+ else:
+ fg_gt_classes = self.gt_classes[fg_inds]
+ # pred_proposal_deltas for class k are located in columns [b * k : b * k + b],
+ # where b is the dimension of box representation (4 or 5)
+ # Note that compared to Detectron1,
+ # we do not perform bounding box regression for background classes.
+ gt_class_cols = box_dim * fg_gt_classes[:, None] + torch.arange(box_dim, device=device)
+
+ loss_box_reg = smooth_l1_loss(
+ self.pred_proposal_deltas[fg_inds[:, None], gt_class_cols],
+ gt_proposal_deltas[fg_inds],
+ self.smooth_l1_beta,
+ reduction="sum",
+ )
+ # The loss is normalized using the total number of regions (R), not the number
+ # of foreground regions even though the box regression loss is only defined on
+ # foreground regions. Why? Because doing so gives equal training influence to
+ # each foreground example. To see how, consider two different minibatches:
+ # (1) Contains a single foreground region
+ # (2) Contains 100 foreground regions
+ # If we normalize by the number of foreground regions, the single example in
+ # minibatch (1) will be given 100 times as much influence as each foreground
+ # example in minibatch (2). Normalizing by the total number of regions, R,
+ # means that the single example in minibatch (1) and each of the 100 examples
+ # in minibatch (2) are given equal influence.
+ loss_box_reg = loss_box_reg / self.gt_classes.numel()
+ return loss_box_reg
+
+ def attribute_loss(self):
+ fg_gt_attributes = self.gt_attributes
+ n_boxes = self.pred_attribute_logits.shape[0]
+ self.pred_attribute_logits = self.pred_attribute_logits.unsqueeze(1)
+ self.pred_attribute_logits = self.pred_attribute_logits.expand(n_boxes, 16, self.num_attr_classes).contiguous().view(-1, self.num_attr_classes)
+
+ inv_per_box_weights = (
+ (fg_gt_attributes >= 0).sum(dim=1).repeat(16, 1).transpose(0, 1).flatten()
+ )
+ per_box_weights = inv_per_box_weights.float().reciprocal()
+ per_box_weights[per_box_weights > 1] = 0.0
+
+ fg_gt_attributes = fg_gt_attributes.view(-1)
+ attributes_loss = 0.5 * F.cross_entropy(
+ self.pred_attribute_logits, fg_gt_attributes, reduction="none", ignore_index=-1
+ )
+
+ attributes_loss = (attributes_loss * per_box_weights).view(n_boxes, -1).sum(dim=1)
+
+ n_valid_boxes = len(attributes_loss.nonzero())
+
+ if n_valid_boxes > 0:
+ attributes_loss = (attributes_loss / n_valid_boxes).sum()
+ else:
+ attributes_loss = (attributes_loss * 0.0).sum()
+ return attributes_loss
+
+ def losses(self):
+ """
+ Compute the default losses for box head in Fast(er) R-CNN,
+ with softmax cross entropy loss and smooth L1 loss.
+
+ Returns:
+ A dict of losses (scalar tensors) containing keys "loss_cls" and "loss_box_reg".
+ """
+ return {
+ "loss_cls": self.softmax_cross_entropy_loss(),
+ "loss_box_reg": self.smooth_l1_loss(),
+ "loss_attr": self.attribute_loss() if self.attr_on else 0.,
+ }
+
+ def predict_boxes(self):
+ """
+ Returns:
+ list[Tensor]: A list of Tensors of predicted class-specific or class-agnostic boxes
+ for each image. Element i has shape (Ri, K * B) or (Ri, B), where Ri is
+ the number of predicted objects for image i and B is the box dimension (4 or 5)
+ """
+ num_pred = len(self.proposals)
+ B = self.proposals.tensor.shape[1]
+ K = self.pred_proposal_deltas.shape[1] // B
+ boxes = self.box2box_transform.apply_deltas(
+ self.pred_proposal_deltas.view(num_pred * K, B),
+ self.proposals.tensor.unsqueeze(1).expand(num_pred, K, B).reshape(-1, B),
+ )
+ return boxes.view(num_pred, K * B).split(self.num_preds_per_image, dim=0)
+
+ def predict_probs(self):
+ """
+ Returns:
+ list[Tensor]: A list of Tensors of predicted class probabilities for each image.
+ Element i has shape (Ri, K + 1), where Ri is the number of predicted objects
+ for image i.
+ """
+ probs = F.softmax(self.pred_class_logits, dim=-1)
+ return probs.split(self.num_preds_per_image, dim=0)
+
+ def inference(self, score_thresh, nms_thresh, topk_per_image):
+ """
+ Args:
+ score_thresh (float): same as fast_rcnn_inference.
+ nms_thresh (float): same as fast_rcnn_inference.
+ topk_per_image (int): same as fast_rcnn_inference.
+ Returns:
+ list[Instances]: same as fast_rcnn_inference.
+ list[Tensor]: same as fast_rcnn_inference.
+ """
+ boxes = self.predict_boxes()
+ scores = self.predict_probs()
+ image_shapes = self.image_shapes
+
+ return fast_rcnn_inference(
+ boxes, scores, image_shapes, score_thresh, nms_thresh, topk_per_image
+ )
+
+class BUADetectron2FastRCNNOutputLayers(nn.Module):
+ """
+ Two linear layers for predicting Fast R-CNN outputs:
+ (1) proposal-to-detection box regression deltas
+ (2) classification scores
+ """
+
+ def __init__(self, input_size, num_classes, cls_agnostic_bbox_reg, box_dim=4, attr_on=False, num_attr_classes=400):
+ """
+ Args:
+ input_size (int): channels, or (channels, height, width)
+ num_classes (int): number of foreground classes
+ cls_agnostic_bbox_reg (bool): whether to use class agnostic for bbox regression
+ box_dim (int): the dimension of bounding boxes.
+ Example box dimensions: 4 for regular XYXY boxes and 5 for rotated XYWHA boxes
+ """
+ super(BUADetectron2FastRCNNOutputLayers, self).__init__()
+ self.attr_on = attr_on
+ self.num_classes = num_classes
+ self.num_attr_classes = num_attr_classes
+
+ if not isinstance(input_size, int):
+ input_size = np.prod(input_size)
+
+ # The prediction layer for num_classes foreground classes and one background class
+ # (hence + 1)
+ self.cls_score = nn.Linear(input_size, num_classes + 1)
+ num_bbox_reg_classes = 1 if cls_agnostic_bbox_reg else num_classes
+ self.bbox_pred = nn.Linear(input_size, num_bbox_reg_classes * box_dim)
+
+ nn.init.normal_(self.cls_score.weight, std=0.01)
+ nn.init.normal_(self.bbox_pred.weight, std=0.001)
+ for l in [self.cls_score, self.bbox_pred]:
+ nn.init.constant_(l.bias, 0)
+
+ if self.attr_on:
+ self.cls_embed = nn.Embedding(num_classes+1, 256)
+ self.attr_linear1 = nn.Linear(input_size + 256, 512)
+ self.attr_linear2 = nn.Linear(512, num_attr_classes)
+
+ # nn.init.normal_(self.cls_embed.weight, std=0.01)
+ nn.init.normal_(self.attr_linear1.weight, std=0.01)
+ nn.init.normal_(self.attr_linear2.weight, std=0.01)
+ nn.init.constant_(self.attr_linear1.bias, 0)
+ nn.init.constant_(self.attr_linear2.bias, 0)
+
+ def forward(self, x, proposal_boxes=None):
+ if x.dim() > 2:
+ x = torch.flatten(x, start_dim=1)
+ scores = self.cls_score(x)
+ proposal_deltas = self.bbox_pred(x)
+
+ if self.attr_on:
+ if self.training:
+ assert proposal_boxes is not None, "Proposals are None while attr=True"
+ proposals, fg_selection_atrributes = select_foreground_proposals(proposal_boxes, self.num_classes)
+ attribute_features = x[torch.cat(fg_selection_atrributes, dim=0)]
+ cls_labels = torch.cat([prop.gt_classes for prop in proposals])
+
+ else:
+ # get labels and indices of proposals with foreground
+ cls_labels = torch.argmax(scores, dim=1)
+ attribute_features = x
+
+ # get embeddings of indices using gt cls labels
+ cls_embed_out = self.cls_embed(cls_labels)
+
+ # concat with fc7 feats
+ concat_attr = cat([attribute_features, cls_embed_out], dim=1)
+
+ # pass through attr head layers
+ fc_attr = self.attr_linear1(concat_attr)
+ attr_score = self.attr_linear2(F.relu(fc_attr))
+ return scores, proposal_deltas, attr_score, cat([p.gt_attributes for p in proposals], dim=0) if self.training else None
+
+ return scores, proposal_deltas
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/__init__.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..de1d0d959e1c3026914fcde4b9b314da04d084fd
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/__init__.py
@@ -0,0 +1,4 @@
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+from .nms import SwapAlign2Nat, swap_align2nat
+
+__all__ = [k for k in globals().keys() if not k.startswith("_")]
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/nms.cu b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/nms.cu
new file mode 100755
index 0000000000000000000000000000000000000000..833d8523a5809d99a1078a144a384c864a9d8df9
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/nms.cu
@@ -0,0 +1,131 @@
+// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
+#include
+#include
+
+#include
+#include
+
+#include
+#include
+
+int const threadsPerBlock = sizeof(unsigned long long) * 8;
+
+__device__ inline float devIoU(float const * const a, float const * const b) {
+ float left = max(a[0], b[0]), right = min(a[2], b[2]);
+ float top = max(a[1], b[1]), bottom = min(a[3], b[3]);
+ float width = max(right - left + 1, 0.f), height = max(bottom - top + 1, 0.f);
+ float interS = width * height;
+ float Sa = (a[2] - a[0] + 1) * (a[3] - a[1] + 1);
+ float Sb = (b[2] - b[0] + 1) * (b[3] - b[1] + 1);
+ return interS / (Sa + Sb - interS);
+}
+
+__global__ void nms_kernel(const int n_boxes, const float nms_overlap_thresh,
+ const float *dev_boxes, unsigned long long *dev_mask) {
+ const int row_start = blockIdx.y;
+ const int col_start = blockIdx.x;
+
+ // if (row_start > col_start) return;
+
+ const int row_size =
+ min(n_boxes - row_start * threadsPerBlock, threadsPerBlock);
+ const int col_size =
+ min(n_boxes - col_start * threadsPerBlock, threadsPerBlock);
+
+ __shared__ float block_boxes[threadsPerBlock * 5];
+ if (threadIdx.x < col_size) {
+ block_boxes[threadIdx.x * 5 + 0] =
+ dev_boxes[(threadsPerBlock * col_start + threadIdx.x) * 5 + 0];
+ block_boxes[threadIdx.x * 5 + 1] =
+ dev_boxes[(threadsPerBlock * col_start + threadIdx.x) * 5 + 1];
+ block_boxes[threadIdx.x * 5 + 2] =
+ dev_boxes[(threadsPerBlock * col_start + threadIdx.x) * 5 + 2];
+ block_boxes[threadIdx.x * 5 + 3] =
+ dev_boxes[(threadsPerBlock * col_start + threadIdx.x) * 5 + 3];
+ block_boxes[threadIdx.x * 5 + 4] =
+ dev_boxes[(threadsPerBlock * col_start + threadIdx.x) * 5 + 4];
+ }
+ __syncthreads();
+
+ if (threadIdx.x < row_size) {
+ const int cur_box_idx = threadsPerBlock * row_start + threadIdx.x;
+ const float *cur_box = dev_boxes + cur_box_idx * 5;
+ int i = 0;
+ unsigned long long t = 0;
+ int start = 0;
+ if (row_start == col_start) {
+ start = threadIdx.x + 1;
+ }
+ for (i = start; i < col_size; i++) {
+ if (devIoU(cur_box, block_boxes + i * 5) > nms_overlap_thresh) {
+ t |= 1ULL << i;
+ }
+ }
+ const int col_blocks = THCCeilDiv(n_boxes, threadsPerBlock);
+ dev_mask[cur_box_idx * col_blocks + col_start] = t;
+ }
+}
+
+// boxes is a N x 5 tensor
+at::Tensor nms_cuda(const at::Tensor boxes, float nms_overlap_thresh) {
+ using scalar_t = float;
+ AT_ASSERTM(boxes.type().is_cuda(), "boxes must be a CUDA tensor");
+ auto scores = boxes.select(1, 4);
+ auto order_t = std::get<1>(scores.sort(0, /* descending=*/true));
+ auto boxes_sorted = boxes.index_select(0, order_t);
+
+ int boxes_num = boxes.size(0);
+
+ const int col_blocks = THCCeilDiv(boxes_num, threadsPerBlock);
+
+ scalar_t* boxes_dev = boxes_sorted.data();
+
+ THCState *state = at::globalContext().lazyInitCUDA(); // TODO replace with getTHCState
+
+ unsigned long long* mask_dev = NULL;
+ //THCudaCheck(THCudaMalloc(state, (void**) &mask_dev,
+ // boxes_num * col_blocks * sizeof(unsigned long long)));
+
+ mask_dev = (unsigned long long*) THCudaMalloc(state, boxes_num * col_blocks * sizeof(unsigned long long));
+
+ dim3 blocks(THCCeilDiv(boxes_num, threadsPerBlock),
+ THCCeilDiv(boxes_num, threadsPerBlock));
+ dim3 threads(threadsPerBlock);
+ nms_kernel<<>>(boxes_num,
+ nms_overlap_thresh,
+ boxes_dev,
+ mask_dev);
+
+ std::vector mask_host(boxes_num * col_blocks);
+ THCudaCheck(cudaMemcpy(&mask_host[0],
+ mask_dev,
+ sizeof(unsigned long long) * boxes_num * col_blocks,
+ cudaMemcpyDeviceToHost));
+
+ std::vector remv(col_blocks);
+ memset(&remv[0], 0, sizeof(unsigned long long) * col_blocks);
+
+ at::Tensor keep = at::empty({boxes_num}, boxes.options().dtype(at::kLong).device(at::kCPU));
+ int64_t* keep_out = keep.data();
+
+ int num_to_keep = 0;
+ for (int i = 0; i < boxes_num; i++) {
+ int nblock = i / threadsPerBlock;
+ int inblock = i % threadsPerBlock;
+
+ if (!(remv[nblock] & (1ULL << inblock))) {
+ keep_out[num_to_keep++] = i;
+ unsigned long long *p = &mask_host[0] + i * col_blocks;
+ for (int j = nblock; j < col_blocks; j++) {
+ remv[j] |= p[j];
+ }
+ }
+ }
+
+ THCudaFree(state, mask_dev);
+ // TODO improve this part
+ return std::get<0>(order_t.index({
+ keep.narrow(/*dim=*/0, /*start=*/0, /*length=*/num_to_keep).to(
+ order_t.device(), keep.scalar_type())
+ }).sort(0, false));
+}
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/nms.h b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/nms.h
new file mode 100755
index 0000000000000000000000000000000000000000..373072de3c36bc43adc67539935a9f904eec1b46
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/nms.h
@@ -0,0 +1,28 @@
+// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
+#pragma once
+#include "vision_cpu.h"
+
+#ifdef WITH_CUDA
+#include "vision_cuda.h"
+#endif
+
+
+at::Tensor nms(const at::Tensor& dets,
+ const at::Tensor& scores,
+ const float threshold) {
+
+ if (dets.type().is_cuda()) {
+#ifdef WITH_CUDA
+ // TODO raise error if not compiled with CUDA
+ if (dets.numel() == 0)
+ return at::empty({0}, dets.options().dtype(at::kLong).device(at::kCPU));
+ auto b = at::cat({dets, scores.unsqueeze(1)}, 1);
+ return nms_cuda(b, threshold);
+#else
+ AT_ERROR("Not compiled with GPU support");
+#endif
+ }
+
+ at::Tensor result = nms_cpu(dets, scores, threshold);
+ return result;
+}
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/nms_cpu.cpp b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/nms_cpu.cpp
new file mode 100755
index 0000000000000000000000000000000000000000..be73d69d11c63d59ab08dbc832609c3cb76a9aea
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/nms_cpu.cpp
@@ -0,0 +1,75 @@
+// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
+#include "vision_cpu.h"
+
+
+template
+at::Tensor nms_cpu_kernel(const at::Tensor& dets,
+ const at::Tensor& scores,
+ const float threshold) {
+ AT_ASSERTM(!dets.type().is_cuda(), "dets must be a CPU tensor");
+ AT_ASSERTM(!scores.type().is_cuda(), "scores must be a CPU tensor");
+ AT_ASSERTM(dets.type() == scores.type(), "dets should have the same type as scores");
+
+ if (dets.numel() == 0) {
+ return at::empty({0}, dets.options().dtype(at::kLong).device(at::kCPU));
+ }
+
+ auto x1_t = dets.select(1, 0).contiguous();
+ auto y1_t = dets.select(1, 1).contiguous();
+ auto x2_t = dets.select(1, 2).contiguous();
+ auto y2_t = dets.select(1, 3).contiguous();
+
+ at::Tensor areas_t = (x2_t - x1_t + 1) * (y2_t - y1_t + 1);
+
+ auto order_t = std::get<1>(scores.sort(0, /* descending=*/true));
+
+ auto ndets = dets.size(0);
+ at::Tensor suppressed_t = at::zeros({ndets}, dets.options().dtype(at::kByte).device(at::kCPU));
+
+ auto suppressed = suppressed_t.data();
+ auto order = order_t.data();
+ auto x1 = x1_t.data();
+ auto y1 = y1_t.data();
+ auto x2 = x2_t.data();
+ auto y2 = y2_t.data();
+ auto areas = areas_t.data();
+
+ for (int64_t _i = 0; _i < ndets; _i++) {
+ auto i = order[_i];
+ if (suppressed[i] == 1)
+ continue;
+ auto ix1 = x1[i];
+ auto iy1 = y1[i];
+ auto ix2 = x2[i];
+ auto iy2 = y2[i];
+ auto iarea = areas[i];
+
+ for (int64_t _j = _i + 1; _j < ndets; _j++) {
+ auto j = order[_j];
+ if (suppressed[j] == 1)
+ continue;
+ auto xx1 = std::max(ix1, x1[j]);
+ auto yy1 = std::max(iy1, y1[j]);
+ auto xx2 = std::min(ix2, x2[j]);
+ auto yy2 = std::min(iy2, y2[j]);
+
+ auto w = std::max(static_cast(0), xx2 - xx1 + 1);
+ auto h = std::max(static_cast(0), yy2 - yy1 + 1);
+ auto inter = w * h;
+ auto ovr = inter / (iarea + areas[j] - inter);
+ if (ovr >= threshold)
+ suppressed[j] = 1;
+ }
+ }
+ return at::nonzero(suppressed_t == 0).squeeze(1);
+}
+
+at::Tensor nms_cpu(const at::Tensor& dets,
+ const at::Tensor& scores,
+ const float threshold) {
+ at::Tensor result;
+ AT_DISPATCH_FLOATING_TYPES(dets.type(), "nms", [&] {
+ result = nms_cpu_kernel(dets, scores, threshold);
+ });
+ return result;
+}
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/vision_cpu.h b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/vision_cpu.h
new file mode 100755
index 0000000000000000000000000000000000000000..92611253616c16efdbed66318da9930b233ae09c
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/vision_cpu.h
@@ -0,0 +1,16 @@
+// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
+#pragma once
+#include
+
+
+at::Tensor ROIAlign_forward_cpu(const at::Tensor& input,
+ const at::Tensor& rois,
+ const float spatial_scale,
+ const int pooled_height,
+ const int pooled_width,
+ const int sampling_ratio);
+
+
+at::Tensor nms_cpu(const at::Tensor& dets,
+ const at::Tensor& scores,
+ const float threshold);
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/vision_cuda.h b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/vision_cuda.h
new file mode 100755
index 0000000000000000000000000000000000000000..cf194532ca626511768caf941616ca2938ad55e4
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/nms/vision_cuda.h
@@ -0,0 +1,10 @@
+// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
+#pragma once
+#include
+
+at::Tensor nms_cuda(const at::Tensor boxes, float nms_overlap_thresh);
+
+
+at::Tensor compute_flow_cuda(const at::Tensor& boxes,
+ const int height,
+ const int width);
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/vision.cpp b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/vision.cpp
new file mode 100755
index 0000000000000000000000000000000000000000..ac5721b18fc0300ae4edd4c0e21ab3c720a7bec2
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/csrc/vision.cpp
@@ -0,0 +1,12 @@
+// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+
+#include
+#include "nms/nms.h"
+
+namespace bottom_up_attention {
+
+PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
+ m.def("nms", &nms, "non-maximum suppression");
+}
+
+} // namespace bottom_up_attention
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/nms.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/nms.py
new file mode 100755
index 0000000000000000000000000000000000000000..2f9226f2dfaaf3d4e6ae59be3270132b365c2475
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/nms.py
@@ -0,0 +1,77 @@
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
+# from ._utils import _C
+from detectron2 import _C
+# from models.bua import _C
+
+from apex import amp
+import torch
+
+# Only valid with fp32 inputs - give AMP the hint
+nms = amp.float_function(_C.nms)
+
+# nms.__doc__ = """
+# This function performs Non-maximum suppresion"""
+
+# NOTE: In order to be consistent with bottom-up-attention, we nms core function from maskrcnn-benchmark
+
+def batched_nms(boxes, scores, idxs, iou_threshold):
+ """
+ Same as torchvision.ops.boxes.batched_nms, but safer.
+ """
+ assert boxes.shape[-1] == 4
+ boxes = boxes.cpu()
+ scores = scores.cpu()
+ # TODO may need better strategy.
+ # Investigate after having a fully-cuda NMS op.
+ if len(boxes) < 40000:
+ return box_ops_batched_nms(boxes, scores, idxs, iou_threshold)
+
+ result_mask = scores.new_zeros(scores.size(), dtype=torch.bool)
+ for id in torch.unique(idxs).cpu().tolist():
+ # if id == 0:
+ # continue
+ mask = (idxs == id).nonzero().view(-1)
+ keep = nms(boxes[mask], scores[mask], iou_threshold)
+ result_mask[mask[keep]] = True
+ keep = result_mask.nonzero().view(-1)
+ keep = keep[scores[keep].argsort(descending=True)]
+ return keep
+
+def box_ops_batched_nms(boxes, scores, idxs, iou_threshold):
+ """
+ Performs non-maximum suppression in a batched fashion.
+
+ Each index value correspond to a category, and NMS
+ will not be applied between elements of different categories.
+
+ Parameters
+ ----------
+ boxes : Tensor[N, 4]
+ boxes where NMS will be performed. They
+ are expected to be in (x1, y1, x2, y2) format
+ scores : Tensor[N]
+ scores for each one of the boxes
+ idxs : Tensor[N]
+ indices of the categories for each one of the boxes.
+ iou_threshold : float
+ discards all overlapping boxes
+ with IoU < iou_threshold
+
+ Returns
+ -------
+ keep : Tensor
+ int64 tensor with the indices of
+ the elements that have been kept by NMS, sorted
+ in decreasing order of scores
+ """
+ if boxes.numel() == 0:
+ return torch.empty((0,), dtype=torch.int64, device=boxes.device)
+ # strategy: in order to perform NMS independently per class.
+ # we add an offset to all the boxes. The offset is dependent
+ # only on the class idx, and is large enough so that boxes
+ # from different classes do not overlap
+ max_coordinate = boxes.max()
+ offsets = idxs.to(boxes) * (max_coordinate + 1)
+ boxes_for_nms = boxes + offsets[:, None]
+ keep = nms(boxes_for_nms, scores, iou_threshold)
+ return keep
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/wrappers.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/wrappers.py
new file mode 100755
index 0000000000000000000000000000000000000000..cd0adeef84700257c8f4e039f9b5b3b74ae3de9e
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/layers/wrappers.py
@@ -0,0 +1,38 @@
+import math
+import torch
+from torch.nn.modules.utils import _ntuple
+
+class Conv2dv2(torch.nn.Conv2d):
+ """
+ A wrapper around :class:`torch.nn.Conv2d` to support more features.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """
+ Extra keyword arguments supported in addition to those in `torch.nn.Conv2d`:
+
+ Args:
+ norm (nn.Module, optional): a normalization layer
+ activation (callable(Tensor) -> Tensor): a callable activation function
+
+ It assumes that norm layer is used before activation.
+ """
+ norm = kwargs.pop("norm", None)
+ activation = kwargs.pop("activation", None)
+ super().__init__(*args, **kwargs)
+
+ self.norm = norm
+ self.activation = activation
+
+ def forward(self, x):
+ if x.numel() == 0 and self.training:
+ # https://github.com/pytorch/pytorch/issues/12013
+ assert not isinstance(
+ self.norm, torch.nn.SyncBatchNorm
+ ), "SyncBatchNorm does not support empty inputs!"
+ if self.norm is not None:
+ x = self.norm(x)
+ if self.activation is not None:
+ x = self.activation(x)
+ x = super().forward(x)
+ return x
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/postprocessing.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/postprocessing.py
new file mode 100755
index 0000000000000000000000000000000000000000..5a51ba4fca65f16819f3445da98684c4931073cf
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/postprocessing.py
@@ -0,0 +1,55 @@
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+
+import numpy as np
+import torch
+
+from detectron2.structures import Instances
+from .layers.nms import nms # BC-compat
+
+def extractor_postprocess(boxes, scores, features_pooled, input_per_image, extractor):
+ """
+ Resize the output instances.
+ The input images are often resized when entering an object detector.
+ As a result, we often need the outputs of the detector in a different
+ resolution from its inputs.
+
+ This function will resize the raw outputs of an R-CNN detector
+ to produce outputs according to the desired output resolution.
+
+ Args:
+ results (Instances): the raw outputs from the detector.
+ `results.image_size` contains the input image resolution the detector sees.
+ This object might be modified in-place.
+ output_height, output_width: the desired output resolution.
+
+ Returns:
+ Instances: the resized output from the model, based on the output resolution
+ """
+ MIN_BOXES = extractor.MIN_BOXES
+ MAX_BOXES = extractor.MAX_BOXES
+ CONF_THRESH = extractor.CONF_THRESH
+
+ cur_device = scores.device
+
+ dets = boxes / input_per_image["im_scale"]
+
+ max_conf = torch.zeros((scores.shape[0])).to(cur_device)
+
+ for cls_ind in range(1, scores.shape[1]):
+ cls_scores = scores[:, cls_ind]
+ keep = nms(dets, cls_scores, 0.3)
+ max_conf[keep] = torch.where(cls_scores[keep] > max_conf[keep],
+ cls_scores[keep],
+ max_conf[keep])
+
+ keep_boxes = torch.nonzero(max_conf >= CONF_THRESH).flatten()
+ if len(keep_boxes) < MIN_BOXES:
+ keep_boxes = torch.argsort(max_conf, descending=True)[:MIN_BOXES]
+ elif len(keep_boxes) > MAX_BOXES:
+ keep_boxes = torch.argsort(max_conf, descending=True)[:MAX_BOXES]
+ # keep_boxes = torch.argsort(max_conf, descending=True)[:100]
+ # feat_list.append(feats[i][keep_boxes])
+ image_feat = features_pooled[keep_boxes]
+ image_bboxes = dets[keep_boxes]
+
+ return image_feat, image_bboxes
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/rcnn.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/rcnn.py
new file mode 100755
index 0000000000000000000000000000000000000000..167a9f2e18e888ee4aa29ec20d02e57911c848fc
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/rcnn.py
@@ -0,0 +1,172 @@
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+import logging, os
+import torch
+from torch import nn
+import torch.nn.functional as F
+
+from detectron2.structures import ImageList
+from detectron2.utils.logger import log_first_n
+
+from detectron2.modeling.backbone import build_backbone
+from detectron2.modeling.postprocessing import detector_postprocess
+from detectron2.modeling.proposal_generator import build_proposal_generator
+from detectron2.modeling.roi_heads import build_roi_heads
+from detectron2.modeling.meta_arch import META_ARCH_REGISTRY
+import time
+# from models.bua_caffe.postprocessing import extractor_postprocess
+#from utils import save_features
+
+__all__ = ["GeneralizedBUARCNN"]
+
+
+@META_ARCH_REGISTRY.register()
+class GeneralizedBUARCNN(nn.Module):
+ """
+ Generalized R-CNN. Any models that contains the following three components:
+ 1. Per-image feature extraction (aka backbone)
+ 2. Region proposal generation
+ 3. Per-region feature extraction and prediction
+ """
+
+ def __init__(self, cfg):
+ super().__init__()
+
+ self.device = torch.device(cfg.MODEL.DEVICE)
+ self.bua_caffe = cfg.MODEL.BUA.CAFFE
+ self.resnet_version = cfg.MODEL.BUA.RESNET_VERSION
+ self.backbone = build_backbone(cfg)
+ self.in_features = cfg.MODEL.RPN.IN_FEATURES
+ self.proposal_generator = build_proposal_generator(cfg, self.backbone.output_shape())
+ self.roi_heads = build_roi_heads(cfg, self.backbone.output_shape())
+
+ assert len(cfg.MODEL.PIXEL_MEAN) == len(cfg.MODEL.PIXEL_STD)
+ self.extract_on = cfg.MODEL.BUA.EXTRACT_FEATS
+ self.extractor = cfg.MODEL.BUA.EXTRACTOR
+ self.to(self.device)
+
+ def forward(self, batched_inputs):
+ """
+ Args:
+ batched_inputs: a list, batched outputs of :class:`DatasetMapper` .
+ Each item in the list contains the inputs for one image.
+ For now, each item in the list is a dict that contains:
+
+ * image: Tensor, image in (C, H, W) format.
+ * instances (optional): groundtruth :class:`Instances`
+ * proposals (optional): :class:`Instances`, precomputed proposals.
+
+ Other information that's included in the original dicts, such as:
+
+ * "height", "width" (int): the output resolution of the model, used in inference.
+ See :meth:`postprocess` for details.
+
+ Returns:
+ list[dict]:
+ Each dict is the output for one input image.
+ The dict contains one key "instances" whose value is a :class:`Instances`.
+ The :class:`Instances` object has the following keys:
+ "pred_boxes", "pred_classes", "scores", "pred_masks", "pred_keypoints"
+ """
+ if not self.training:
+ return self.inference(batched_inputs)
+
+ images = self.preprocess_image(batched_inputs)
+ if "instances" in batched_inputs[0]:
+ gt_instances = [x["instances"].to(self.device) for x in batched_inputs]
+ elif "targets" in batched_inputs[0]:
+ log_first_n(
+ logging.WARN, "'targets' in the model inputs is now renamed to 'instances'!", n=10
+ )
+ gt_instances = [x["targets"].to(self.device) for x in batched_inputs]
+ else:
+ gt_instances = None
+
+ features = self.backbone(images.tensor)
+
+ if self.resnet_version == 2:
+ for f in features:
+ out = self.roi_heads.res5[0].norm(features[f])
+ features[f] = F.relu_(out)
+
+ if self.proposal_generator:
+ proposals, proposal_losses = self.proposal_generator(images, features, gt_instances)
+ else:
+ assert "proposals" in batched_inputs[0]
+ proposals = [x["proposals"].to(self.device) for x in batched_inputs]
+ proposal_losses = {}
+
+ _, detector_losses = self.roi_heads(images, features, proposals, gt_instances)
+
+ losses = {}
+ losses.update(detector_losses)
+ losses.update(proposal_losses)
+ return losses
+
+ def inference(self, batched_inputs, detected_instances=None, do_postprocess=True):
+ """
+ Run inference on the given inputs.
+
+ Args:
+ batched_inputs (list[dict]): same as in :meth:`forward`
+ detected_instances (None or list[Instances]): if not None, it
+ contains an `Instances` object per image. The `Instances`
+ object contains "pred_boxes" and "pred_classes" which are
+ known boxes in the image.
+ The inference will then skip the detection of bounding boxes,
+ and only predict other per-ROI outputs.
+ do_postprocess (bool): whether to apply post-processing on the outputs.
+
+ Returns:
+ same as in :meth:`forward`.
+ """
+ assert not self.training
+
+ images = self.preprocess_image(batched_inputs)
+# time_a = time.time()
+ features = self.backbone(images.tensor)
+# time_b = time.time()
+# print("time cost:{}".format(time_b - time_a))
+# print("features shape:", features["res4"].shape)
+ if self.resnet_version == 2:
+ for f in features:
+ out = self.roi_heads.res5[0].norm(features[f])
+ features[f] = F.relu_(out)
+
+ if detected_instances is None:
+ if self.proposal_generator:
+ proposals, _ = self.proposal_generator(images, features, None)
+ else:
+ assert "proposals" in batched_inputs[0]
+ proposals = [x["proposals"].to(self.device) for x in batched_inputs]
+
+ if self.extract_on:
+ return self.roi_heads(images, features, proposals, None)
+ else:
+ results, _ = self.roi_heads(images, features, proposals, None)
+ else:
+ detected_instances = [x.to(self.device) for x in detected_instances]
+ results = self.roi_heads.forward_with_given_boxes(features, detected_instances)
+
+ if do_postprocess:
+ processed_results = []
+ for results_per_image, input_per_image, image_size in zip(
+ results, batched_inputs, images.image_sizes
+ ):
+ height = input_per_image.get("height", image_size[0])
+ width = input_per_image.get("width", image_size[1])
+ if not self.bua_caffe:
+ results_per_image = detector_postprocess(results_per_image, height, width)
+ processed_results.append({"instances": results_per_image})
+ return processed_results
+ else:
+ return results
+
+ def preprocess_image(self, batched_inputs):
+ """
+ Normalize, pad and batch the input images.
+ """
+ images = [x["image"].to(self.device) for x in batched_inputs]
+ image_scales = [x["im_scale"] for x in batched_inputs]
+ images = ImageList.from_tensors(images, self.backbone.size_divisibility)
+ images.image_scales = image_scales
+ return images
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/roi_heads.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/roi_heads.py
new file mode 100755
index 0000000000000000000000000000000000000000..43222605305460155847dfe90ea325b70f2713e1
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/roi_heads.py
@@ -0,0 +1,460 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+import numpy as np
+import torch
+import torch.nn as nn
+from torch.nn import functional as F
+
+from detectron2.utils.events import get_event_storage
+from detectron2.modeling import ROI_HEADS_REGISTRY, ROIHeads
+from detectron2.structures import Boxes, Instances, pairwise_iou
+from detectron2.modeling.sampling import subsample_labels
+from detectron2.modeling.poolers import ROIPooler
+from detectron2.modeling.backbone.resnet import BottleneckBlock
+from detectron2.modeling.proposal_generator.proposal_utils import add_ground_truth_to_proposals
+from detectron2.layers import get_norm, BatchNorm2d
+
+from .fast_rcnn import BUACaffeFastRCNNOutputs, BUACaffeFastRCNNOutputLayers, BUADetection2FastRCNNOutputs, BUADetectron2FastRCNNOutputLayers
+from .box_regression import BUABox2BoxTransform
+from .backbone import BottleneckBlockv2
+
+def make_stage(block_class, num_blocks, first_stride, **kwargs):
+ """
+ Create a resnet stage by creating many blocks.
+ Args:
+ block_class (class): a subclass of ResNetBlockBase
+ num_blocks (int):
+ first_stride (int): the stride of the first block. The other blocks will have stride=1.
+ A `stride` argument will be passed to the block constructor.
+ kwargs: other arguments passed to the block constructor.
+
+ Returns:
+ list[nn.Module]: a list of block module.
+ """
+ blocks = []
+ for i in range(num_blocks):
+ if kwargs["dilation"] > 1:
+ first_stride = 1
+ blocks.append(block_class(stride=first_stride if i == 0 else 1, **kwargs))
+ kwargs["in_channels"] = kwargs["out_channels"]
+ return blocks
+
+@ROI_HEADS_REGISTRY.register()
+class BUACaffeRes5ROIHeads(ROIHeads):
+ """
+ The ROIHeads in a typical "C4" R-CNN model, where
+ the box and mask head share the cropping and
+ the per-region feature computation by a Res5 block.
+ """
+
+ def __init__(self, cfg, input_shape):
+ # super().__init__(cfg, input_shape)
+ super().__init__(cfg)
+
+ self.in_features = cfg.MODEL.ROI_HEADS.IN_FEATURES
+ self.feature_strides = {k: v.stride for k, v in input_shape.items()}
+ self.cls_agnostic_bbox_reg = cfg.MODEL.ROI_BOX_HEAD.CLS_AGNOSTIC_BBOX_REG
+ self.smooth_l1_beta = cfg.MODEL.ROI_BOX_HEAD.SMOOTH_L1_BETA
+ assert len(self.in_features) == 1
+
+ # fmt: off
+ pooler_resolution = cfg.MODEL.ROI_BOX_HEAD.POOLER_RESOLUTION
+ pooler_type = cfg.MODEL.ROI_BOX_HEAD.POOLER_TYPE
+ pooler_scales = (1.0 / self.feature_strides[self.in_features[0]], )
+ sampling_ratio = cfg.MODEL.ROI_BOX_HEAD.POOLER_SAMPLING_RATIO
+ self.resnet_version = cfg.MODEL.BUA.RESNET_VERSION
+ self.attr_on = cfg.MODEL.BUA.ATTRIBUTE_ON
+ self.extract_on = cfg.MODEL.BUA.EXTRACT_FEATS
+ self.num_attr_classes = cfg.MODEL.BUA.ATTRIBUTE.NUM_CLASSES
+ self.extractor_mode = cfg.MODEL.BUA.EXTRACTOR.MODE
+
+ self.pooler = ROIPooler(
+ output_size=pooler_resolution,
+ scales=pooler_scales,
+ sampling_ratio=sampling_ratio,
+ pooler_type=pooler_type,
+ )
+
+ self.box2box_transform = BUABox2BoxTransform(weights=cfg.MODEL.ROI_BOX_HEAD.BBOX_REG_WEIGHTS)
+
+ self.res5, out_channels = self._build_res5_block(cfg)
+ if self.resnet_version == 2:
+ self.res5_bn = BatchNorm2d(out_channels, eps=2e-5)
+ self.box_predictor = BUACaffeFastRCNNOutputLayers(
+ out_channels, self.num_classes, self.cls_agnostic_bbox_reg, attr_on=self.attr_on, num_attr_classes=self.num_attr_classes
+ )
+
+ def _build_res5_block(self, cfg):
+ # fmt: off
+ stage_channel_factor = 2 ** 3 # res5 is 8x res2
+ num_groups = cfg.MODEL.RESNETS.NUM_GROUPS
+ width_per_group = cfg.MODEL.RESNETS.WIDTH_PER_GROUP
+ bottleneck_channels = num_groups * width_per_group * stage_channel_factor
+ out_channels = cfg.MODEL.RESNETS.RES2_OUT_CHANNELS * stage_channel_factor
+ stride_in_1x1 = cfg.MODEL.RESNETS.STRIDE_IN_1X1
+ norm = cfg.MODEL.RESNETS.NORM
+ dilation = cfg.MODEL.RESNETS.RES5_DILATION
+ assert not cfg.MODEL.RESNETS.DEFORM_ON_PER_STAGE[-1], \
+ "Deformable conv is not yet supported in res5 head."
+ # fmt: on
+ blocks = make_stage(
+ BottleneckBlock if self.resnet_version == 1 else BottleneckBlockv2,
+ 3,
+ first_stride=2,
+ in_channels=out_channels // 2,
+ bottleneck_channels=bottleneck_channels,
+ out_channels=out_channels,
+ num_groups=num_groups,
+ norm=norm,
+ stride_in_1x1=stride_in_1x1,
+ dilation=dilation,
+ )
+ return nn.Sequential(*blocks), out_channels
+
+ def _shared_roi_transform(self, features, boxes):
+ x = self.pooler(features, boxes)
+ if self.resnet_version == 2:
+ out = self.res5[0].conv1(x)
+ out = self.res5[0].conv2(out)
+ out = self.res5[0].conv3(out)
+ if self.res5[0].shortcut is not None:
+ shortcut = self.res5[0].shortcut(x)
+ else:
+ shortcut = x
+ out += shortcut
+ out = self.res5[1:](out)
+ return F.relu_(self.res5_bn(out))
+ return self.res5(x)
+
+ def forward(self, images, features, proposals, targets=None):
+ """
+ See :class:`ROIHeads.forward`.
+ """
+ image_scales = images.image_scales
+ del images
+
+ if self.training:
+ proposals = self.label_and_sample_proposals(proposals, targets)
+ del targets
+
+ proposal_boxes = [x.proposal_boxes for x in proposals]
+ box_features = self._shared_roi_transform(
+ [features[f] for f in self.in_features], proposal_boxes
+ )
+ feature_pooled = box_features.mean(dim=[2, 3]) # pooled to 1x1
+ if self.attr_on:
+ pred_class_logits, pred_proposal_deltas, attr_scores = self.box_predictor(feature_pooled, proposals)
+ else:
+ pred_class_logits, pred_proposal_deltas = self.box_predictor(feature_pooled, proposals)
+ if not self.extract_on:
+ del feature_pooled
+
+ outputs = BUACaffeFastRCNNOutputs(
+ self.box2box_transform,
+ pred_class_logits,
+ pred_proposal_deltas,
+ proposals,
+ self.smooth_l1_beta,
+ image_scales
+ )
+
+ if self.training:
+ del features
+ losses = outputs.losses()
+ return [], losses
+ else:
+ if self.extract_on:
+ num_preds_per_image = [len(p) for p in proposals]
+ if self.extractor_mode == 1 or self.extractor_mode == 3:
+ if self.attr_on:
+ return proposal_boxes, outputs.predict_probs(), feature_pooled.split(num_preds_per_image, dim=0), attr_scores.split(num_preds_per_image, dim=0)
+ else:
+ return proposal_boxes, outputs.predict_probs(), feature_pooled.split(num_preds_per_image, dim=0)
+ elif self.extractor_mode == 2:
+ return outputs.predict_boxes(), outputs.predict_probs()
+ else:
+ raise ValueError('BUA.EXTRATOR.MODE ERROR')
+ pred_instances, _ = outputs.inference(
+ self.test_score_thresh, self.test_nms_thresh, self.test_detections_per_img
+ )
+ return pred_instances, {}
+
+@ROI_HEADS_REGISTRY.register()
+class BUADetectron2Res5ROIHeads(ROIHeads):
+ """
+ The ROIHeads in a typical "C4" R-CNN model, where
+ the box and mask head share the cropping and
+ the per-region feature computation by a Res5 block.
+ """
+
+ def __init__(self, cfg, input_shape):
+ # super().__init__(cfg, input_shape)
+ super().__init__(cfg)
+
+ self.in_features = cfg.MODEL.ROI_HEADS.IN_FEATURES
+ self.feature_strides = {k: v.stride for k, v in input_shape.items()}
+ self.cls_agnostic_bbox_reg = cfg.MODEL.ROI_BOX_HEAD.CLS_AGNOSTIC_BBOX_REG
+ self.smooth_l1_beta = cfg.MODEL.ROI_BOX_HEAD.SMOOTH_L1_BETA
+ assert len(self.in_features) == 1
+
+ # fmt: off
+ pooler_resolution = cfg.MODEL.ROI_BOX_HEAD.POOLER_RESOLUTION
+ pooler_type = cfg.MODEL.ROI_BOX_HEAD.POOLER_TYPE
+ pooler_scales = (1.0 / self.feature_strides[self.in_features[0]], )
+ sampling_ratio = cfg.MODEL.ROI_BOX_HEAD.POOLER_SAMPLING_RATIO
+ self.resnet_version = cfg.MODEL.BUA.RESNET_VERSION
+ self.attr_on = cfg.MODEL.BUA.ATTRIBUTE_ON
+ self.extract_on = cfg.MODEL.BUA.EXTRACT_FEATS
+ self.num_attr_classes = cfg.MODEL.BUA.ATTRIBUTE.NUM_CLASSES
+ self.extractor_mode = cfg.MODEL.BUA.EXTRACTOR.MODE
+
+ self.pooler = ROIPooler(
+ output_size=pooler_resolution,
+ scales=pooler_scales,
+ sampling_ratio=sampling_ratio,
+ pooler_type=pooler_type,
+ )
+
+ # self.box2box_transform = BUABox2BoxTransform(weights=cfg.MODEL.ROI_BOX_HEAD.BBOX_REG_WEIGHTS)
+
+ self.res5, out_channels = self._build_res5_block(cfg)
+ if self.resnet_version == 2:
+ self.res5_bn = BatchNorm2d(out_channels, eps=2e-5)
+ self.box_predictor = BUADetectron2FastRCNNOutputLayers(
+ out_channels, self.num_classes, self.cls_agnostic_bbox_reg, \
+ attr_on=self.attr_on, num_attr_classes=self.num_attr_classes
+ )
+
+ def _sample_proposals(self, matched_idxs, matched_labels, gt_classes, gt_attributes):
+ """
+ Based on the matching between N proposals and M groundtruth,
+ sample the proposals and set their classification labels.
+
+ Args:
+ matched_idxs (Tensor): a vector of length N, each is the best-matched
+ gt index in [0, M) for each proposal.
+ matched_labels (Tensor): a vector of length N, the matcher's label
+ (one of cfg.MODEL.ROI_HEADS.IOU_LABELS) for each proposal.
+ gt_classes (Tensor): a vector of length M.
+
+ Returns:
+ Tensor: a vector of indices of sampled proposals. Each is in [0, N).
+ Tensor: a vector of the same length, the classification label for
+ each sampled proposal. Each sample is labeled as either a category in
+ [0, num_classes) or the background (num_classes).
+ """
+ has_gt = gt_classes.numel() > 0
+ # Get the corresponding GT for each proposal
+ if has_gt:
+ gt_classes = gt_classes[matched_idxs]
+ gt_attributes = gt_attributes[matched_idxs, :]
+ # Label unmatched proposals (0 label from matcher) as background (label=num_classes)
+ gt_classes[matched_labels == 0] = self.num_classes
+ # Label ignore proposals (-1 label)
+ gt_classes[matched_labels == -1] = -1
+ else:
+ gt_classes = torch.zeros_like(matched_idxs) + self.num_classes
+ gt_clagt_attributes = -torch.ones((len(matched_idxs),16), dtype=torch.int64).cuda()
+
+ sampled_fg_idxs, sampled_bg_idxs = subsample_labels(
+ gt_classes, self.batch_size_per_image, self.positive_sample_fraction, self.num_classes
+ )
+
+ sampled_idxs = torch.cat([sampled_fg_idxs, sampled_bg_idxs], dim=0)
+ return sampled_idxs, gt_classes[sampled_idxs], gt_attributes[sampled_idxs]
+
+ def _build_res5_block(self, cfg):
+ # fmt: off
+ stage_channel_factor = 2 ** 3 # res5 is 8x res2
+ num_groups = cfg.MODEL.RESNETS.NUM_GROUPS
+ width_per_group = cfg.MODEL.RESNETS.WIDTH_PER_GROUP
+ bottleneck_channels = num_groups * width_per_group * stage_channel_factor
+ out_channels = cfg.MODEL.RESNETS.RES2_OUT_CHANNELS * stage_channel_factor
+ stride_in_1x1 = cfg.MODEL.RESNETS.STRIDE_IN_1X1
+ norm = cfg.MODEL.RESNETS.NORM
+ dilation = cfg.MODEL.RESNETS.RES5_DILATION
+ assert not cfg.MODEL.RESNETS.DEFORM_ON_PER_STAGE[-1], \
+ "Deformable conv is not yet supported in res5 head."
+ # fmt: on
+
+ blocks = make_stage(
+ BottleneckBlock if self.resnet_version == 1 else BottleneckBlockv2,
+ 3,
+ first_stride=2,
+ in_channels=out_channels // 2,
+ bottleneck_channels=bottleneck_channels,
+ out_channels=out_channels,
+ num_groups=num_groups,
+ norm=norm,
+ stride_in_1x1=stride_in_1x1,
+ dilation=dilation,
+ )
+ return nn.Sequential(*blocks), out_channels
+
+ def _shared_roi_transform(self, features, boxes):
+ x = self.pooler(features, boxes)
+ if self.resnet_version == 2:
+ out = self.res5[0].conv1(x)
+ out = self.res5[0].conv2(out)
+ out = self.res5[0].conv3(out)
+ if self.res5[0].shortcut is not None:
+ shortcut = self.res5[0].shortcut(x)
+ else:
+ shortcut = x
+ out += shortcut
+ out = self.res5[1:](out)
+ return F.relu_(self.res5_bn(out))
+ return self.res5(x)
+
+ @torch.no_grad()
+ def label_and_sample_proposals(self, proposals, targets):
+ """
+ Prepare some proposals to be used to train the ROI heads.
+ It performs box matching between `proposals` and `targets`, and assigns
+ training labels to the proposals.
+ It returns ``self.batch_size_per_image`` random samples from proposals and groundtruth
+ boxes, with a fraction of positives that is no larger than
+ ``self.positive_sample_fraction``.
+
+ Args:
+ See :meth:`ROIHeads.forward`
+
+ Returns:
+ list[Instances]:
+ length `N` list of `Instances`s containing the proposals
+ sampled for training. Each `Instances` has the following fields:
+
+ - proposal_boxes: the proposal boxes
+ - gt_boxes: the ground-truth box that the proposal is assigned to
+ (this is only meaningful if the proposal has a label > 0; if label = 0
+ then the ground-truth box is random)
+
+ Other fields such as "gt_classes", "gt_masks", that's included in `targets`.
+ """
+ gt_boxes = [x.gt_boxes for x in targets]
+ # Augment proposals with ground-truth boxes.
+ # In the case of learned proposals (e.g., RPN), when training starts
+ # the proposals will be low quality due to random initialization.
+ # It's possible that none of these initial
+ # proposals have high enough overlap with the gt objects to be used
+ # as positive examples for the second stage components (box head,
+ # cls head, mask head). Adding the gt boxes to the set of proposals
+ # ensures that the second stage components will have some positive
+ # examples from the start of training. For RPN, this augmentation improves
+ # convergence and empirically improves box AP on COCO by about 0.5
+ # points (under one tested configuration).
+ if self.proposal_append_gt:
+ proposals = add_ground_truth_to_proposals(gt_boxes, proposals)
+
+ proposals_with_gt = []
+
+ num_fg_samples = []
+ num_bg_samples = []
+ for proposals_per_image, targets_per_image in zip(proposals, targets):
+ has_gt = len(targets_per_image) > 0
+ match_quality_matrix = pairwise_iou(
+ targets_per_image.gt_boxes, proposals_per_image.proposal_boxes
+ )
+ matched_idxs, matched_labels = self.proposal_matcher(match_quality_matrix)
+ sampled_idxs, gt_classes, gt_attributes = self._sample_proposals(
+ matched_idxs, matched_labels, targets_per_image.gt_classes, targets_per_image.gt_attributes
+ )
+
+ # Set target attributes of the sampled proposals:
+ proposals_per_image = proposals_per_image[sampled_idxs]
+ proposals_per_image.gt_classes = gt_classes
+ proposals_per_image.gt_attributes = gt_attributes
+
+ # We index all the attributes of targets that start with "gt_"
+ # and have not been added to proposals yet (="gt_classes").
+ if has_gt:
+ sampled_targets = matched_idxs[sampled_idxs]
+ # NOTE: here the indexing waste some compute, because heads
+ # like masks, keypoints, etc, will filter the proposals again,
+ # (by foreground/background, or number of keypoints in the image, etc)
+ # so we essentially index the data twice.
+ for (trg_name, trg_value) in targets_per_image.get_fields().items():
+ if trg_name.startswith("gt_") and not proposals_per_image.has(trg_name):
+ proposals_per_image.set(trg_name, trg_value[sampled_targets])
+ else:
+ gt_boxes = Boxes(
+ targets_per_image.gt_boxes.tensor.new_zeros((len(sampled_idxs), 4))
+ )
+ proposals_per_image.gt_boxes = gt_boxes
+
+ num_bg_samples.append((gt_classes == self.num_classes).sum().item())
+ num_fg_samples.append(gt_classes.numel() - num_bg_samples[-1])
+ proposals_with_gt.append(proposals_per_image)
+
+ # Log the number of fg/bg samples that are selected for training ROI heads
+ storage = get_event_storage()
+ storage.put_scalar("roi_head/num_fg_samples", np.mean(num_fg_samples))
+ storage.put_scalar("roi_head/num_bg_samples", np.mean(num_bg_samples))
+
+ return proposals_with_gt
+
+ def forward(self, images, features, proposals, targets=None):
+ """
+ See :class:`ROIHeads.forward`.
+ """
+ image_scales = images.image_scales
+ del images
+
+ if self.training:
+ proposals = self.label_and_sample_proposals(proposals, targets)
+ del targets
+
+ proposal_boxes = [x.proposal_boxes for x in proposals]
+ box_features = self._shared_roi_transform(
+ [features[f] for f in self.in_features], proposal_boxes
+ )
+ feature_pooled = box_features.mean(dim=[2, 3]) # pooled to 1x1
+ if self.attr_on:
+ pred_class_logits, pred_proposal_deltas, pred_attribute_logits, gt_attributes = self.box_predictor(feature_pooled, proposals)
+ else:
+ pred_class_logits, pred_proposal_deltas = self.box_predictor(feature_pooled, proposals)
+ if not self.extract_on:
+ del feature_pooled
+
+ if self.attr_on:
+ outputs = BUADetection2FastRCNNOutputs(
+ self.box2box_transform,
+ pred_class_logits,
+ pred_proposal_deltas,
+ proposals,
+ self.smooth_l1_beta,
+ self.attr_on,
+ pred_attribute_logits=pred_attribute_logits,
+ num_attr_classes=self.num_attr_classes,
+ gt_attributes=gt_attributes,
+ )
+ else:
+ outputs = BUADetection2FastRCNNOutputs(
+ self.box2box_transform,
+ pred_class_logits,
+ pred_proposal_deltas,
+ proposals,
+ self.smooth_l1_beta,
+ self.attr_on,
+ )
+
+ if self.training:
+ del features
+ losses = outputs.losses()
+ return [], losses
+ else:
+ if self.extract_on:
+ num_preds_per_image = [len(p) for p in proposals]
+ if self.extractor_mode == 1 or self.extractor_mode == 3:
+ if self.attr_on:
+ return proposal_boxes, outputs.predict_probs(), feature_pooled.split(num_preds_per_image, dim=0), F.softmax(pred_attribute_logits, dim=-1).split(num_preds_per_image, dim=0)
+ else:
+ return proposal_boxes, outputs.predict_probs(), feature_pooled.split(num_preds_per_image, dim=0)
+ elif self.extractor_mode == 2:
+ return outputs.predict_boxes(), outputs.predict_probs()
+ else:
+ raise ValueError('BUA.EXTRATOR.MODE ERROR')
+ pred_instances, _ = outputs.inference(
+ self.test_score_thresh, self.test_nms_thresh, self.test_detections_per_img
+ )
+ return pred_instances, {}
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/rpn.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/rpn.py
new file mode 100755
index 0000000000000000000000000000000000000000..8336c1021bff07f11e5bb98eda6af1e3053565c1
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/rpn.py
@@ -0,0 +1,176 @@
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+from typing import Dict, List
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+from detectron2.modeling import RPN_HEAD_REGISTRY
+from detectron2.layers import ShapeSpec
+
+from detectron2.modeling.proposal_generator import build_rpn_head
+from detectron2.modeling.proposal_generator.build import PROPOSAL_GENERATOR_REGISTRY
+from detectron2.modeling.anchor_generator import build_anchor_generator
+from .box_regression import BUABox2BoxTransform
+from detectron2.modeling.matcher import Matcher
+from .rpn_outputs import BUARPNOutputs, find_top_bua_rpn_proposals
+
+@RPN_HEAD_REGISTRY.register()
+class StandardBUARPNHead(nn.Module):
+ """
+ RPN classification and regression heads. Uses a 3x3 conv to produce a shared
+ hidden state from which one 1x1 conv predicts objectness logits for each anchor
+ and a second 1x1 conv predicts bounding-box deltas specifying how to deform
+ each anchor into an object proposal.
+ """
+
+ def __init__(self, cfg, input_shape: List[ShapeSpec]):
+ super().__init__()
+
+ # Standard RPN is shared across levels:
+ out_channels = cfg.MODEL.BUA.RPN.CONV_OUT_CHANNELS
+
+ in_channels = [s.channels for s in input_shape]
+ assert len(set(in_channels)) == 1, "Each level must have the same channel!"
+ in_channels = in_channels[0]
+
+ # RPNHead should take the same input as anchor generator
+ # NOTE: it assumes that creating an anchor generator does not have unwanted side effect.
+ anchor_generator = build_anchor_generator(cfg, input_shape)
+ num_cell_anchors = anchor_generator.num_cell_anchors
+ box_dim = anchor_generator.box_dim
+ assert (
+ len(set(num_cell_anchors)) == 1
+ ), "Each level must have the same number of cell anchors"
+ num_cell_anchors = num_cell_anchors[0]
+
+ # 3x3 conv for the hidden representation
+ self.conv = nn.Conv2d(in_channels, out_channels, kernel_size=3, stride=1, padding=1)
+ # 1x1 conv for predicting objectness logits
+ self.objectness_logits = nn.Conv2d(out_channels, num_cell_anchors * 2, kernel_size=1, stride=1)
+ # 1x1 conv for predicting box2box transform deltas
+ self.anchor_deltas = nn.Conv2d(
+ out_channels, num_cell_anchors * box_dim, kernel_size=1, stride=1
+ )
+
+ for l in [self.conv, self.objectness_logits, self.anchor_deltas]:
+ nn.init.normal_(l.weight, std=0.01)
+ nn.init.constant_(l.bias, 0)
+
+ def forward(self, features):
+ """
+ Args:
+ features (list[Tensor]): list of feature maps
+ """
+ pred_objectness_logits = []
+ pred_anchor_deltas = []
+ for x in features:
+ t = F.relu(self.conv(x))
+ pred_objectness_logits.append(self.objectness_logits(t))
+ pred_anchor_deltas.append(self.anchor_deltas(t))
+ return pred_objectness_logits, pred_anchor_deltas
+
+@PROPOSAL_GENERATOR_REGISTRY.register()
+class BUARPN(nn.Module):
+ """
+ Region Proposal Network, introduced by the Faster R-CNN paper.
+ """
+
+ def __init__(self, cfg, input_shape: Dict[str, ShapeSpec]):
+ super().__init__()
+
+ # fmt: off
+ self.min_box_side_len = cfg.MODEL.PROPOSAL_GENERATOR.MIN_SIZE
+ self.in_features = cfg.MODEL.RPN.IN_FEATURES
+ self.nms_thresh = cfg.MODEL.RPN.NMS_THRESH
+ self.batch_size_per_image = cfg.MODEL.RPN.BATCH_SIZE_PER_IMAGE
+ self.positive_fraction = cfg.MODEL.RPN.POSITIVE_FRACTION
+ self.smooth_l1_beta = cfg.MODEL.RPN.SMOOTH_L1_BETA
+ self.loss_weight = cfg.MODEL.RPN.LOSS_WEIGHT
+ # fmt: on
+
+ # Map from self.training state to train/test settings
+ self.pre_nms_topk = {
+ True: cfg.MODEL.RPN.PRE_NMS_TOPK_TRAIN,
+ False: cfg.MODEL.RPN.PRE_NMS_TOPK_TEST,
+ }
+ self.post_nms_topk = {
+ True: cfg.MODEL.RPN.POST_NMS_TOPK_TRAIN,
+ False: cfg.MODEL.RPN.POST_NMS_TOPK_TEST,
+ }
+ self.boundary_threshold = cfg.MODEL.RPN.BOUNDARY_THRESH
+
+ self.anchor_generator = build_anchor_generator(
+ cfg, [input_shape[f] for f in self.in_features]
+ )
+ self.box2box_transform = BUABox2BoxTransform(weights=cfg.MODEL.RPN.BBOX_REG_WEIGHTS)
+ self.anchor_matcher = Matcher(
+ cfg.MODEL.RPN.IOU_THRESHOLDS, cfg.MODEL.RPN.IOU_LABELS, allow_low_quality_matches=True
+ )
+ self.rpn_head = build_rpn_head(cfg, [input_shape[f] for f in self.in_features])
+
+ def forward(self, images, features, gt_instances=None):
+ """
+ Args:
+ images (ImageList): input images of length `N`
+ features (dict[str: Tensor]): input data as a mapping from feature
+ map name to tensor. Axis 0 represents the number of images `N` in
+ the input data; axes 1-3 are channels, height, and width, which may
+ vary between feature maps (e.g., if a feature pyramid is used).
+ gt_instances (list[Instances], optional): a length `N` list of `Instances`s.
+ Each `Instances` stores ground-truth instances for the corresponding image.
+
+ Returns:
+ proposals: list[Instances] or None
+ loss: dict[Tensor]
+ """
+ gt_boxes = [x.gt_boxes for x in gt_instances] if gt_instances is not None else None
+ del gt_instances
+ features = [features[f] for f in self.in_features]
+ pred_objectness_logits, pred_anchor_deltas = self.rpn_head(features)
+ anchors = self.anchor_generator(features)
+ # TODO: The anchors only depend on the feature map shape; there's probably
+ # an opportunity for some optimizations (e.g., caching anchors).
+ outputs = BUARPNOutputs(
+ self.box2box_transform,
+ self.anchor_matcher,
+ self.batch_size_per_image,
+ self.positive_fraction,
+ images,
+ pred_objectness_logits,
+ pred_anchor_deltas,
+ anchors,
+ self.boundary_threshold,
+ gt_boxes,
+ self.smooth_l1_beta,
+ )
+
+ if self.training:
+ losses = {k: v * self.loss_weight for k, v in outputs.losses().items()}
+ else:
+ losses = {}
+
+ with torch.no_grad():
+ # Find the top proposals by applying NMS and removing boxes that
+ # are too small. The proposals are treated as fixed for approximate
+ # joint training with roi heads. This approach ignores the derivative
+ # w.r.t. the proposal boxes’ coordinates that are also network
+ # responses, so is approximate.
+ proposals = find_top_bua_rpn_proposals(
+ outputs.predict_proposals(),
+ outputs.predict_objectness_logits(),
+ images,
+ self.nms_thresh,
+ self.pre_nms_topk[self.training],
+ self.post_nms_topk[self.training],
+ self.min_box_side_len,
+ self.training,
+ )
+ # For RPN-only models, the proposals are the final output and we return them in
+ # high-to-low confidence order.
+ # For end-to-end models, the RPN proposals are an intermediate state
+ # and this sorting is actually not needed. But the cost is negligible.
+ # inds = [p.objectness_logits.sort(descending=True)[1] for p in proposals]
+ # proposals = [p[ind] for p, ind in zip(proposals, inds)]
+
+ return proposals, losses
\ No newline at end of file
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/rpn_outputs.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/rpn_outputs.py
new file mode 100755
index 0000000000000000000000000000000000000000..8b779a854b7dce6ad6f27f7b70b78ab86fd152b6
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_models/bua/rpn_outputs.py
@@ -0,0 +1,404 @@
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+import itertools
+import logging
+import numpy as np
+import torch
+import torch.nn.functional as F
+from fvcore.nn import smooth_l1_loss
+
+from detectron2.layers import cat
+from detectron2.structures import Instances, pairwise_iou
+from detectron2.utils.events import get_event_storage
+
+from detectron2.modeling.sampling import subsample_labels
+
+from .box_regression import BUABoxes
+from detectron2.layers.nms import batched_nms
+
+def find_top_bua_rpn_proposals(
+ proposals,
+ pred_objectness_logits,
+ images,
+ nms_thresh,
+ pre_nms_topk,
+ post_nms_topk,
+ min_box_side_len,
+ training,
+):
+ """
+ For each feature map, select the `pre_nms_topk` highest scoring proposals,
+ apply NMS, clip proposals, and remove small boxes. Return the `post_nms_topk`
+ highest scoring proposals among all the feature maps if `training` is True,
+ otherwise, returns the highest `post_nms_topk` scoring proposals for each
+ feature map.
+
+ Args:
+ proposals (list[Tensor]): A list of L tensors. Tensor i has shape (N, Hi*Wi*A, 4).
+ All proposal predictions on the feature maps.
+ pred_objectness_logits (list[Tensor]): A list of L tensors. Tensor i has shape (N, Hi*Wi*A).
+ images (ImageList): Input images as an :class:`ImageList`.
+ nms_thresh (float): IoU threshold to use for NMS
+ pre_nms_topk (int): number of top k scoring proposals to keep before applying NMS.
+ When RPN is run on multiple feature maps (as in FPN) this number is per
+ feature map.
+ post_nms_topk (int): number of top k scoring proposals to keep after applying NMS.
+ When RPN is run on multiple feature maps (as in FPN) this number is total,
+ over all feature maps.
+ min_box_side_len (float): minimum proposal box side length in pixels (absolute units
+ wrt input images).
+ training (bool): True if proposals are to be used in training, otherwise False.
+ This arg exists only to support a legacy bug; look for the "NB: Legacy bug ..."
+ comment.
+
+ Returns:
+ proposals (list[Instances]): list of N Instances. The i-th Instances
+ stores post_nms_topk object proposals for image i.
+ """
+ image_sizes = images.image_sizes # in (h, w) order
+ image_scales = images.image_scales
+ device = proposals[0].device
+
+ # 1. Concat all levels together
+ all_scores = []
+ all_proposals = []
+ level_ids = []
+ for level_id, proposals_i, logits_i in zip(
+ itertools.count(), proposals, pred_objectness_logits
+ ):
+ Hi_Wi_A = logits_i.shape[1]
+ all_proposals.append(proposals_i)
+ all_scores.append(logits_i)
+ level_ids.append(torch.full((Hi_Wi_A,), level_id, dtype=torch.int64, device=device))
+
+ all_scores = cat(all_scores, dim=1)
+ all_proposals = cat(all_proposals, dim=1)
+ level_ids = cat(level_ids, dim=0)
+
+ # 2. For each image, run a choose pre_nms_topk proposal ,per-level NMS, and choose post_nms_topk results.
+ results = []
+ for n, image_size in enumerate(image_sizes):
+ boxes = BUABoxes(all_proposals[n])
+ scores_per_img = all_scores[n]
+ boxes.clip(image_size)
+ keep = boxes.filter_boxes()
+ boxes = boxes[keep]
+ scores_per_img = scores_per_img[keep]
+ lvl = level_ids[keep]
+
+ # filter empty boxes
+ keep = boxes.nonempty(threshold=min_box_side_len*image_scales[n])
+ if keep.sum().item() != len(boxes):
+ boxes, scores_per_img, lvl = boxes[keep], scores_per_img[keep], lvl[keep]
+
+ # choose pre_nms_topk proposal
+ Hi_Wi_A = scores_per_img.shape[0]
+ num_proposals_i = min(pre_nms_topk, Hi_Wi_A)
+
+ scores_per_img, idx = scores_per_img.sort(descending=True, dim=0)
+ topk_scores_i = scores_per_img[:num_proposals_i]
+ topk_idx = idx[:num_proposals_i]
+ topk_boxes_i = boxes[topk_idx, :]
+ lvl_i = lvl[topk_idx]
+
+ keep = batched_nms(topk_boxes_i.tensor, topk_scores_i, lvl_i, nms_thresh)
+ # In Detectron1, there was different behavior during training vs. testing.
+ # (https://github.com/facebookresearch/Detectron/issues/459)
+ # During training, topk is over the proposals from *all* images in the training batch.
+ # During testing, it is over the proposals for each image separately.
+ # As a result, the training behavior becomes batch-dependent,
+ # and the configuration "POST_NMS_TOPK_TRAIN" end up relying on the batch size.
+ # This bug is addressed in Detectron2 to make the behavior independent of batch size.
+ keep = keep[:post_nms_topk]
+
+ res = Instances(image_size)
+ res.proposal_boxes = topk_boxes_i[keep]
+ res.objectness_logits = topk_scores_i[keep]
+ results.append(res)
+ return results
+
+class BUARPNOutputs(object):
+ def __init__(
+ self,
+ box2box_transform,
+ anchor_matcher,
+ batch_size_per_image,
+ positive_fraction,
+ images,
+ pred_objectness_logits,
+ pred_anchor_deltas,
+ anchors,
+ boundary_threshold=0,
+ gt_boxes=None,
+ smooth_l1_beta=0.0,
+ ):
+ """
+ Args:
+ box2box_transform (Box2BoxTransform): :class:`Box2BoxTransform` instance for
+ anchor-proposal transformations.
+ anchor_matcher (Matcher): :class:`Matcher` instance for matching anchors to
+ ground-truth boxes; used to determine training labels.
+ batch_size_per_image (int): number of proposals to sample when training
+ positive_fraction (float): target fraction of sampled proposals that should be positive
+ images (ImageList): :class:`ImageList` instance representing N input images
+ pred_objectness_logits (list[Tensor]): A list of L elements.
+ Element i is a tensor of shape (N, A, Hi, Wi) representing
+ the predicted objectness logits for anchors.
+ pred_anchor_deltas (list[Tensor]): A list of L elements. Element i is a tensor of shape
+ (N, A*4, Hi, Wi) representing the predicted "deltas" used to transform anchors
+ to proposals.
+ anchors (list[list[Boxes]]): A list of N elements. Each element is a list of L
+ Boxes. The Boxes at (n, l) stores the entire anchor array for feature map l in image
+ n (i.e. the cell anchors repeated over all locations in feature map (n, l)).
+ boundary_threshold (int): if >= 0, then anchors that extend beyond the image
+ boundary by more than boundary_thresh are not used in training. Set to a very large
+ number or < 0 to disable this behavior. Only needed in training.
+ gt_boxes (list[Boxes], optional): A list of N elements. Element i a Boxes storing
+ the ground-truth ("gt") boxes for image i.
+ smooth_l1_beta (float): The transition point between L1 and L2 loss in
+ the smooth L1 loss function. When set to 0, the loss becomes L1. When
+ set to +inf, the loss becomes constant 0.
+ """
+ self.box2box_transform = box2box_transform
+ self.anchor_matcher = anchor_matcher
+ self.batch_size_per_image = batch_size_per_image
+ self.positive_fraction = positive_fraction
+ self.pred_objectness_logits = pred_objectness_logits
+ self.pred_anchor_deltas = pred_anchor_deltas
+
+ self.anchors = anchors
+ self.gt_boxes = gt_boxes
+ self.num_feature_maps = len(pred_objectness_logits)
+ self.num_images = len(images)
+ self.image_sizes = images.image_sizes
+ self.boundary_threshold = boundary_threshold
+ self.smooth_l1_beta = smooth_l1_beta
+
+ def _get_ground_truth(self):
+ """
+ Returns:
+ gt_objectness_logits: list of N tensors. Tensor i is a vector whose length is the
+ total number of anchors in image i (i.e., len(anchors[i])). Label values are
+ in {-1, 0, 1}, with meanings: -1 = ignore; 0 = negative class; 1 = positive class.
+ gt_anchor_deltas: list of N tensors. Tensor i has shape (len(anchors[i]), 4).
+ """
+ gt_objectness_logits = []
+ gt_anchor_deltas = []
+ # Concatenate anchors from all feature maps into a single Boxes per image
+ anchors = [BUABoxes.cat(anchors_i) for anchors_i in self.anchors]
+ for image_size_i, anchors_i, gt_boxes_i in zip(self.image_sizes, anchors, self.gt_boxes):
+ """
+ image_size_i: (h, w) for the i-th image
+ anchors_i: anchors for i-th image
+ gt_boxes_i: ground-truth boxes for i-th image
+ """
+ match_quality_matrix = pairwise_iou(gt_boxes_i, anchors_i)
+ matched_idxs, gt_objectness_logits_i = self.anchor_matcher(match_quality_matrix)
+
+ if self.boundary_threshold >= 0:
+ # Discard anchors that go out of the boundaries of the image
+ # NOTE: This is legacy functionality that is turned off by default in Detectron2
+ anchors_inside_image = anchors_i.inside_box(image_size_i, self.boundary_threshold)
+ gt_objectness_logits_i[~anchors_inside_image] = -1
+
+ if len(gt_boxes_i) == 0:
+ # These values won't be used anyway since the anchor is labeled as background
+ gt_anchor_deltas_i = torch.zeros_like(anchors_i.tensor)
+ else:
+ # TODO wasted computation for ignored boxes
+ matched_gt_boxes = gt_boxes_i[matched_idxs]
+ gt_anchor_deltas_i = self.box2box_transform.get_deltas(
+ anchors_i.tensor, matched_gt_boxes.tensor
+ )
+
+ gt_objectness_logits.append(gt_objectness_logits_i)
+ gt_anchor_deltas.append(gt_anchor_deltas_i)
+
+ return gt_objectness_logits, gt_anchor_deltas
+
+ def losses(self):
+ """
+ Return the losses from a set of RPN predictions and their associated ground-truth.
+
+ Returns:
+ dict[loss name -> loss value]: A dict mapping from loss name to loss value.
+ Loss names are: `loss_rpn_cls` for objectness classification and
+ `loss_rpn_loc` for proposal localization.
+ """
+
+ def resample(label):
+ """
+ Randomly sample a subset of positive and negative examples by overwriting
+ the label vector to the ignore value (-1) for all elements that are not
+ included in the sample.
+ """
+ pos_idx, neg_idx = subsample_labels(
+ label, self.batch_size_per_image, self.positive_fraction, 0
+ )
+ # Fill with the ignore label (-1), then set positive and negative labels
+ label.fill_(-1)
+ label.scatter_(0, pos_idx, 1)
+ label.scatter_(0, neg_idx, 0)
+ return label
+
+ gt_objectness_logits, gt_anchor_deltas = self._get_ground_truth()
+ """
+ gt_objectness_logits: list of N tensors. Tensor i is a vector whose length is the
+ total number of anchors in image i (i.e., len(anchors[i]))
+ gt_anchor_deltas: list of N tensors. Tensor i has shape (len(anchors[i]), B),
+ where B is the box dimension
+ """
+ # Collect all objectness labels and delta targets over feature maps and images
+ # The final ordering is L, N, H, W, A from slowest to fastest axis.
+ num_anchors_per_map = [int(np.prod(x.shape[1:])/2) for x in self.pred_objectness_logits]
+ num_anchors_per_image = sum(num_anchors_per_map)
+
+ # Stack to: (N, num_anchors_per_image)
+ gt_objectness_logits = torch.stack(
+ [resample(label) for label in gt_objectness_logits], dim=0
+ )
+
+ # Log the number of positive/negative anchors per-image that's used in training
+ num_pos_anchors = (gt_objectness_logits == 1).sum().item()
+ num_neg_anchors = (gt_objectness_logits == 0).sum().item()
+ storage = get_event_storage()
+ storage.put_scalar("rpn/num_pos_anchors", num_pos_anchors / self.num_images)
+ storage.put_scalar("rpn/num_neg_anchors", num_neg_anchors / self.num_images)
+
+ assert gt_objectness_logits.shape[1] == num_anchors_per_image
+ # Split to tuple of L tensors, each with shape (N, num_anchors_per_map)
+ gt_objectness_logits = torch.split(gt_objectness_logits, num_anchors_per_map, dim=1)
+ # Concat from all feature maps
+ gt_objectness_logits = cat([x.flatten() for x in gt_objectness_logits], dim=0)
+
+ # Stack to: (N, num_anchors_per_image, B)
+ gt_anchor_deltas = torch.stack(gt_anchor_deltas, dim=0)
+ assert gt_anchor_deltas.shape[1] == num_anchors_per_image
+ B = gt_anchor_deltas.shape[2] # box dimension (4 or 5)
+
+ # Split to tuple of L tensors, each with shape (N, num_anchors_per_image)
+ gt_anchor_deltas = torch.split(gt_anchor_deltas, num_anchors_per_map, dim=1)
+ # Concat from all feature maps
+ gt_anchor_deltas = cat([x.reshape(-1, B) for x in gt_anchor_deltas], dim=0)
+
+ # Collect all objectness logits and delta predictions over feature maps
+ # and images to arrive at the same shape as the labels and targets
+ # The final ordering is L, N, H, W, 2A from slowest to fastest axis.
+ pred_objectness_logits = cat(
+ [
+ # Reshape: (N, 2A, Hi, Wi) -> (N, Hi, Wi, 2A) -> (N*Hi*Wi*A, 2)
+ x.permute(0, 2, 3, 1).reshape(-1, 2)
+ for x in self.pred_objectness_logits
+ ],
+ dim=0,
+ )
+ pred_anchor_deltas = cat(
+ [
+ # Reshape: (N, A*B, Hi, Wi) -> (N, A, B, Hi, Wi) -> (N, Hi, Wi, A, B)
+ # -> (N*Hi*Wi*A, B)
+ x.view(x.shape[0], -1, B, x.shape[-2], x.shape[-1])
+ .permute(0, 3, 4, 1, 2)
+ .reshape(-1, B)
+ for x in self.pred_anchor_deltas
+ ],
+ dim=0,
+ )
+
+ objectness_loss, localization_loss = bua_rpn_losses(
+ gt_objectness_logits,
+ gt_anchor_deltas,
+ pred_objectness_logits,
+ pred_anchor_deltas,
+ self.smooth_l1_beta,
+ )
+ normalizer = 1.0 / (self.batch_size_per_image * self.num_images)
+ loss_cls = objectness_loss * normalizer # cls: classification loss
+ loss_loc = localization_loss * normalizer # loc: localization loss
+ losses = {"loss_rpn_cls": loss_cls, "loss_rpn_loc": loss_loc}
+
+ return losses
+
+ def predict_proposals(self):
+ """
+ Transform anchors into proposals by applying the predicted anchor deltas.
+
+ Returns:
+ proposals (list[Tensor]): A list of L tensors. Tensor i has shape
+ (N, Hi*Wi*A, B), where B is box dimension (4 or 5).
+ """
+ proposals = []
+ # Transpose anchors from images-by-feature-maps (N, L) to feature-maps-by-images (L, N)
+ # anchors = list(zip(*self.anchors))
+ anchors = list(zip(*[self.anchors]))
+ # For each feature map
+ for anchors_i, pred_anchor_deltas_i in zip(anchors, self.pred_anchor_deltas):
+ B = anchors_i[0].tensor.size(1)
+ N, _, Hi, Wi = pred_anchor_deltas_i.shape
+ # Reshape: (N, A*B, Hi, Wi) -> (N, A, B, Hi, Wi) -> (N, Hi, Wi, A, B) -> (N*Hi*Wi*A, B)
+ pred_anchor_deltas_i = (
+ pred_anchor_deltas_i.view(N, -1, B, Hi, Wi).permute(0, 3, 4, 1, 2).reshape(-1, B)
+ )
+ # Concatenate all anchors to shape (N*Hi*Wi*A, B)
+ # type(anchors_i[0]) is Boxes (B = 4) or RotatedBoxes (B = 5)
+ anchors_i = type(anchors_i[0]).cat(anchors_i)
+ proposals_i = self.box2box_transform.apply_deltas(
+ pred_anchor_deltas_i, anchors_i.tensor
+ )
+ # Append feature map proposals with shape (N, Hi*Wi*A, B)
+ proposals.append(proposals_i.view(N, -1, B))
+ return proposals
+
+ def predict_objectness_logits(self):
+ """
+ Return objectness logits in the same format as the proposals returned by
+ :meth:`predict_proposals`.
+
+ Returns:
+ pred_objectness_logits (list[Tensor]): A list of L tensors. Tensor i has shape
+ (N, Hi*Wi*A).
+ """
+ pred_objectness_logits = [
+ # Reshape: (N, 2A, Hi, Wi) -> (N, 2, A, Hi, Wi) -> (N, Hi, Wi, 1, A) -> (N, Hi*Wi*A)
+ F.softmax(score.view(score.shape[0], 2, int(float(score.shape[1]) / float(2)), score.shape[2], score.shape[3]), dim=1)[:, 1:, :, :, :]\
+ .permute(0, 3, 4, 1, 2).reshape(self.num_images, -1)
+ for score in self.pred_objectness_logits
+ ]
+ return pred_objectness_logits
+
+
+def bua_rpn_losses(
+ gt_objectness_logits,
+ gt_anchor_deltas,
+ pred_objectness_logits,
+ pred_anchor_deltas,
+ smooth_l1_beta,
+):
+ """
+ Args:
+ gt_objectness_logits (Tensor): shape (N,), each element in {-1, 0, 1} representing
+ ground-truth objectness labels with: -1 = ignore; 0 = not object; 1 = object.
+ gt_anchor_deltas (Tensor): shape (N, box_dim), row i represents ground-truth
+ box2box transform targets (dx, dy, dw, dh) or (dx, dy, dw, dh, da) that map anchor i to
+ its matched ground-truth box.
+ pred_objectness_logits (Tensor): shape (N, 2), each element is a predicted objectness
+ logit.
+ pred_anchor_deltas (Tensor): shape (N, box_dim), each row is a predicted box2box
+ transform (dx, dy, dw, dh) or (dx, dy, dw, dh, da)
+ smooth_l1_beta (float): The transition point between L1 and L2 loss in
+ the smooth L1 loss function. When set to 0, the loss becomes L1. When
+ set to +inf, the loss becomes constant 0.
+
+ Returns:
+ objectness_loss, localization_loss, both unnormalized (summed over samples).
+ """
+ pos_masks = gt_objectness_logits == 1
+ localization_loss = smooth_l1_loss(
+ pred_anchor_deltas[pos_masks], gt_anchor_deltas[pos_masks], smooth_l1_beta, reduction="sum"
+ )
+
+ valid_masks = gt_objectness_logits >= 0
+ objectness_loss = F.cross_entropy(
+ pred_objectness_logits[valid_masks],
+ gt_objectness_logits[valid_masks].to(torch.long),
+ reduction="sum",
+ )
+ return objectness_loss, localization_loss
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_utils/__init__.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_utils/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..04185530cf830905bc984948554bba2d203a9902
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_utils/__init__.py
@@ -0,0 +1 @@
+from .bua_utils import save_features
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_utils/bua_utils.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_utils/bua_utils.py
new file mode 100755
index 0000000000000000000000000000000000000000..d69562984e48c1b98df1d7704f251c799cb0e630
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_utils/bua_utils.py
@@ -0,0 +1,67 @@
+import os
+import errno
+import numpy as np
+import torch
+
+from detectron2.structures import Instances
+from detectron2.layers.nms import nms
+
+def save_features(output_file, features, boxes=None):
+ if boxes is None:
+ res = features
+ np.save(output_file, res)
+ else:
+ np.savez(output_file, x=features, bbox=boxes)
+
+def mkdir(path):
+ try:
+ os.makedirs(path)
+ except OSError as e:
+ if e.errno != errno.EEXIST:
+ raise
+
+def extractor_postprocess(boxes, scores, features_pooled, input_per_image, extractor):
+ """
+ Resize the output instances.
+ The input images are often resized when entering an object detector.
+ As a result, we often need the outputs of the detector in a different
+ resolution from its inputs.
+
+ This function will resize the raw outputs of an R-CNN detector
+ to produce outputs according to the desired output resolution.
+
+ Args:
+ results (Instances): the raw outputs from the detector.
+ `results.image_size` contains the input image resolution the detector sees.
+ This object might be modified in-place.
+ output_height, output_width: the desired output resolution.
+
+ Returns:
+ Instances: the resized output from the model, based on the output resolution
+ """
+ MIN_BOXES = extractor.MIN_BOXES
+ MAX_BOXES = extractor.MAX_BOXES
+ CONF_THRESH = extractor.CONF_THRESH
+
+ cur_device = scores.device
+
+ dets = boxes / input_per_image["im_scale"]
+
+ max_conf = torch.zeros((scores.shape[0])).to(cur_device)
+
+ for cls_ind in range(1, scores.shape[1]):
+ cls_scores = scores[:, cls_ind]
+ keep = nms(dets, cls_scores, 0.3)
+ max_conf[keep] = torch.where(cls_scores[keep] > max_conf[keep],
+ cls_scores[keep],
+ max_conf[keep])
+
+ keep_boxes = torch.nonzero(max_conf >= CONF_THRESH).flatten()
+ if len(keep_boxes) < MIN_BOXES:
+ keep_boxes = torch.argsort(max_conf, descending=True)[:MIN_BOXES]
+ elif len(keep_boxes) > MAX_BOXES:
+ keep_boxes = torch.argsort(max_conf, descending=True)[:MAX_BOXES]
+ image_feat = features_pooled[keep_boxes]
+ image_bboxes = dets[keep_boxes]
+
+ return image_feat, image_bboxes
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_utils/extract_utils.py b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_utils/extract_utils.py
new file mode 100755
index 0000000000000000000000000000000000000000..455e401f976a9105f83e0050b85916f20a436f3c
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/bbox_utils/extract_utils.py
@@ -0,0 +1,183 @@
+import torch
+import numpy as np
+import cv2
+import os
+
+from detectron2.layers.nms import nms
+
+from ..bbox_models.bua.box_regression import BUABoxes
+
+PIXEL_MEANS = np.array([[[102.9801, 115.9465, 122.7717]]])
+TEST_SCALES = (600,)
+TEST_MAX_SIZE = 1000
+
+def im_list_to_blob(ims):
+ """Convert a list of images into a network input.
+
+ Assumes images are already prepared (means subtracted, BGR order, ...).
+ """
+ max_shape = np.array([im.shape for im in ims]).max(axis=0)
+ num_images = len(ims)
+ blob = np.zeros((num_images, max_shape[0], max_shape[1], 3),
+ dtype=np.float32)
+ for i in range(num_images):
+ im = ims[i]
+ blob[i, 0:im.shape[0], 0:im.shape[1], :] = im
+
+ return blob
+
+def get_image_blob(im, pixel_means):
+ """Converts an image into a network input.
+ Arguments:
+ im (ndarray): a color image
+ Returns:
+ blob (ndarray): a data blob holding an image pyramid
+ im_scale_factors (list): list of image scales (relative to im) used
+ in the image pyramid
+ """
+ pixel_means = np.array([[pixel_means]])
+ dataset_dict = {}
+ im_orig = im.astype(np.float32, copy=True)
+ im_orig -= pixel_means
+
+ im_shape = im_orig.shape
+ im_size_min = np.min(im_shape[0:2])
+ im_size_max = np.max(im_shape[0:2])
+
+ for target_size in TEST_SCALES:
+ im_scale = float(target_size) / float(im_size_min)
+ # Prevent the biggest axis from being more than MAX_SIZE
+ if np.round(im_scale * im_size_max) > TEST_MAX_SIZE:
+ im_scale = float(TEST_MAX_SIZE) / float(im_size_max)
+ im = cv2.resize(im_orig, None, None, fx=im_scale, fy=im_scale,
+ interpolation=cv2.INTER_LINEAR)
+
+ dataset_dict["image"] = torch.from_numpy(im).permute(2, 0, 1)
+ dataset_dict["im_scale"] = im_scale
+
+ return dataset_dict
+
+
+def save_roi_features(args, cfg, im_file, im, dataset_dict, boxes, scores, features_pooled, attr_scores=None):
+ MIN_BOXES = cfg.MODEL.BUA.EXTRACTOR.MIN_BOXES
+ MAX_BOXES = cfg.MODEL.BUA.EXTRACTOR.MAX_BOXES
+ CONF_THRESH = cfg.MODEL.BUA.EXTRACTOR.CONF_THRESH
+
+ dets = boxes[0] / dataset_dict['im_scale']
+ scores = scores[0]
+ feats = features_pooled[0]
+
+ max_conf = torch.zeros((scores.shape[0])).to(scores.device)
+ for cls_ind in range(1, scores.shape[1]):
+ cls_scores = scores[:, cls_ind]
+ keep = nms(dets, cls_scores, 0.3)
+ max_conf[keep] = torch.where(cls_scores[keep] > max_conf[keep],
+ cls_scores[keep],
+ max_conf[keep])
+
+ keep_boxes = torch.nonzero(max_conf >= CONF_THRESH).flatten()
+ if len(keep_boxes) < MIN_BOXES:
+ keep_boxes = torch.argsort(max_conf, descending=True)[:MIN_BOXES]
+ elif len(keep_boxes) > MAX_BOXES:
+ keep_boxes = torch.argsort(max_conf, descending=True)[:MAX_BOXES]
+ image_feat = feats[keep_boxes]
+ image_bboxes = dets[keep_boxes]
+ image_objects_conf = np.max(scores[keep_boxes].numpy()[:,1:], axis=1)
+ image_objects = np.argmax(scores[keep_boxes].numpy()[:,1:], axis=1)
+ if not attr_scores is None:
+ attr_scores = attr_scores[0]
+ image_attrs_conf = np.max(attr_scores[keep_boxes].numpy()[:,1:], axis=1)
+ image_attrs = np.argmax(attr_scores[keep_boxes].numpy()[:,1:], axis=1)
+ info = {
+ 'image_id': im_file.split('.')[0],
+ 'image_h': np.size(im, 0),
+ 'image_w': np.size(im, 1),
+ 'num_boxes': len(keep_boxes),
+ 'objects_id': image_objects,
+ 'objects_conf': image_objects_conf,
+ 'attrs_id': image_attrs,
+ 'attrs_conf': image_attrs_conf,
+ }
+ else:
+ info = {
+ 'image_id': im_file.split('.')[0],
+ 'image_h': np.size(im, 0),
+ 'image_w': np.size(im, 1),
+ 'num_boxes': len(keep_boxes),
+ 'objects_id': image_objects,
+ 'objects_conf': image_objects_conf
+ }
+
+ output_file = os.path.join(args.output_dir, im_file.split('.')[0])
+ np.savez_compressed(output_file, x=image_feat, bbox=image_bboxes, num_bbox=len(keep_boxes), image_h=np.size(im, 0), image_w=np.size(im, 1), info=info)
+
+def save_bbox(args, cfg, npz_dir, im_file, im, dataset_dict, boxes, scores):
+ MIN_BOXES = cfg.MODEL.BUA.EXTRACTOR.MIN_BOXES
+ MAX_BOXES = cfg.MODEL.BUA.EXTRACTOR.MAX_BOXES
+ CONF_THRESH = cfg.MODEL.BUA.EXTRACTOR.CONF_THRESH
+
+ scores = scores[0]
+ boxes = boxes[0]
+ num_classes = scores.shape[1]
+ boxes = BUABoxes(boxes.reshape(-1, 4))
+ boxes.clip((dataset_dict['image'].shape[1]/dataset_dict['im_scale'], dataset_dict['image'].shape[2]/dataset_dict['im_scale']))
+ boxes = boxes.tensor.view(-1, num_classes*4) # R x C x 4
+
+ cls_boxes = torch.zeros((boxes.shape[0], 4))
+ for idx in range(boxes.shape[0]):
+ cls_idx = torch.argmax(scores[idx, 1:]) + 1
+ cls_boxes[idx, :] = boxes[idx, cls_idx * 4:(cls_idx + 1) * 4]
+
+ max_conf = torch.zeros((scores.shape[0])).to(scores.device)
+ for cls_ind in range(1, num_classes):
+ cls_scores = scores[:, cls_ind]
+ keep = nms(cls_boxes, cls_scores, 0.3)
+ max_conf[keep] = torch.where(cls_scores[keep] > max_conf[keep],
+ cls_scores[keep],
+ max_conf[keep])
+
+ keep_boxes = torch.argsort(max_conf, descending=True)[:MAX_BOXES]
+ image_bboxes = cls_boxes[keep_boxes]
+
+ output_file = os.path.join(npz_dir, im_file.split('.')[0])
+ np.savez_compressed(output_file, bbox=image_bboxes, num_bbox=len(keep_boxes), image_h=np.size(im, 0), image_w=np.size(im, 1))
+
+def save_roi_features_by_bbox(args, cfg, im_file, im, dataset_dict, boxes, scores, features_pooled, attr_scores=None):
+ MIN_BOXES = cfg.MODEL.BUA.EXTRACTOR.MIN_BOXES
+ MAX_BOXES = cfg.MODEL.BUA.EXTRACTOR.MAX_BOXES
+ CONF_THRESH = cfg.MODEL.BUA.EXTRACTOR.CONF_THRESH
+ dets = boxes[0] / dataset_dict['im_scale']
+ scores = scores[0]
+ feats = features_pooled[0]
+ keep_boxes = [i for i in range(scores.shape[0])]
+
+ image_feat = feats[keep_boxes]
+ image_bboxes = dets[keep_boxes]
+ image_objects_conf = np.max(scores[keep_boxes].numpy()[:,1:], axis=1)
+ image_objects = np.argmax(scores[keep_boxes].numpy()[:,1:], axis=1)
+ if not attr_scores is None:
+ attr_scores = attr_scores[0]
+ image_attrs_conf = np.max(attr_scores[keep_boxes].numpy()[:,1:], axis=1)
+ image_attrs = np.argmax(attr_scores[keep_boxes].numpy()[:,1:], axis=1)
+ info = {
+ 'image_id': im_file.split('.')[0],
+ 'image_h': np.size(im, 0),
+ 'image_w': np.size(im, 1),
+ 'num_boxes': len(keep_boxes),
+ 'objects_id': image_objects,
+ 'objects_conf': image_objects_conf,
+ 'attrs_id': image_attrs,
+ 'attrs_conf': image_attrs_conf,
+ }
+ else:
+ info = {
+ 'image_id': im_file.split('.')[0],
+ 'image_h': np.size(im, 0),
+ 'image_w': np.size(im, 1),
+ 'num_boxes': len(keep_boxes),
+ 'objects_id': image_objects,
+ 'objects_conf': image_objects_conf
+ }
+
+ output_file = os.path.join(args.output_dir, im_file.split('.')[0])
+ np.savez_compressed(output_file, x=image_feat, bbox=image_bboxes, num_bbox=len(keep_boxes), image_h=np.size(im, 0), image_w=np.size(im, 1), info=info)
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/configs/bua-caffe/extract-bua-caffe-r101.yaml b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/configs/bua-caffe/extract-bua-caffe-r101.yaml
new file mode 100755
index 0000000000000000000000000000000000000000..28d9f35dd58558199ea80cec99f99185a0fd60a7
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/configs/bua-caffe/extract-bua-caffe-r101.yaml
@@ -0,0 +1,53 @@
+MODEL:
+ DEVICE: 'cuda'
+ WEIGHTS: "/cfs/cfs-4a8cd28be/mmatch/infguo/weights/bua-caffe-frcn-r101_with_attributes.pth"
+ META_ARCHITECTURE: "GeneralizedBUARCNN"
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ ANCHOR_GENERATOR:
+ SIZES: [[4, 8, 16, 32]]
+ PROPOSAL_GENERATOR:
+ NAME: "BUARPN"
+ MIN_SIZE: 16
+ BUA:
+ ATTRIBUTE_ON: True
+ EXTRACT_FEATS: True
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ EXTRACTOR:
+ MODE: 2
+ MIN_BOXES: 5
+ MAX_BOXES: 45
+ CONF_THRESH: 0.4
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ RESNETS:
+ DEPTH: 101
+ OUT_FEATURES: ["res4"]
+ NORM: "BN"
+ RES5_DILATION: 2
+ BACKBONE:
+ NAME: "build_bua_resnet_backbone"
+ FREEZE_AT: 3
+ RPN:
+ HEAD_NAME: "StandardBUARPNHead"
+ PRE_NMS_TOPK_TRAIN: 12000
+ POST_NMS_TOPK_TRAIN: 2000
+ POST_NMS_TOPK_TEST: 300
+ PRE_NMS_TOPK_TEST: 6000
+ BATCH_SIZE_PER_IMAGE: 64
+ ROI_HEADS:
+ NAME: "BUACaffeRes5ROIHeads"
+ BATCH_SIZE_PER_IMAGE: 64
+ SCORE_THRESH_TEST: -1.0
+ NMS_THRESH_TEST: 0.3
+ POSITIVE_FRACTION: 0.5
+ NUM_CLASSES: 1601
+ ROI_BOX_HEAD:
+ POOLER_TYPE: "ROIPool"
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+INPUT:
+ MIN_SIZE_TRAIN: (600, )
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MAX_SIZE_TEST: 1000
+
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/output/config.yaml b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/output/config.yaml
new file mode 100755
index 0000000000000000000000000000000000000000..026d955042fc2070c34a9ad6bc4a30a1b02ff2d7
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/output/config.yaml
@@ -0,0 +1,317 @@
+CUDNN_BENCHMARK: false
+DATALOADER:
+ ASPECT_RATIO_GROUPING: true
+ FILTER_EMPTY_ANNOTATIONS: true
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: []
+ PROPOSAL_FILES_TRAIN: []
+ TEST: []
+ TRAIN: []
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: false
+ SIZE:
+ - 0.9
+ - 0.9
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN:
+ - 600
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES:
+ - - -90
+ - 0
+ - 90
+ ASPECT_RATIOS:
+ - - 0.5
+ - 1.0
+ - 2.0
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES:
+ - - 4
+ - 8
+ - 16
+ - 32
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: true
+ CAFFE: true
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: true
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM: ''
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: false
+ LOAD_PROPOSALS: false
+ MASK_ON: false
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: true
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN:
+ - 102.9801
+ - 115.9465
+ - 122.7717
+ PIXEL_STD:
+ - 1.0
+ - 1.0
+ - 1.0
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: false
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE:
+ - false
+ - false
+ - false
+ - false
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES:
+ - res4
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: true
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS:
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.0
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES:
+ - p3
+ - p4
+ - p5
+ - p6
+ - p7
+ IOU_LABELS:
+ - 0
+ - -1
+ - 1
+ IOU_THRESHOLDS:
+ - 0.4
+ - 0.5
+ NMS_THRESH_TEST: 0.5
+ NORM: ''
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS:
+ - - 10.0
+ - 10.0
+ - 5.0
+ - 5.0
+ - - 20.0
+ - 20.0
+ - 10.0
+ - 10.0
+ - - 30.0
+ - 30.0
+ - 15.0
+ - 15.0
+ IOUS:
+ - 0.5
+ - 0.6
+ - 0.7
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS:
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.0
+ CLS_AGNOSTIC_BBOX_REG: false
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME: ''
+ NORM: ''
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: false
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES:
+ - res4
+ IOU_LABELS:
+ - 0
+ - 1
+ IOU_THRESHOLDS:
+ - 0.5
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: true
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS:
+ - 512
+ - 512
+ - 512
+ - 512
+ - 512
+ - 512
+ - 512
+ - 512
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: true
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: false
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM: ''
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS:
+ - 1.0
+ - 1.0
+ - 1.0
+ - 1.0
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES:
+ - res4
+ IOU_LABELS:
+ - 0
+ - -1
+ - 1
+ IOU_THRESHOLDS:
+ - 0.3
+ - 0.7
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES:
+ - p2
+ - p3
+ - p4
+ - p5
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: false
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: false
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: false
+ REFERENCE_WORLD_SIZE: 0
+ STEPS:
+ - 30000
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: false
+ FLIP: true
+ MAX_SIZE: 4000
+ MIN_SIZES:
+ - 400
+ - 500
+ - 600
+ - 700
+ - 800
+ - 900
+ - 1000
+ - 1100
+ - 1200
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: false
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
diff --git a/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/output/log.txt b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/output/log.txt
new file mode 100755
index 0000000000000000000000000000000000000000..77d1750490a5e939c413e2809bf91276c194217e
--- /dev/null
+++ b/MuseV/MMCM/mmcm/vision/feature_extractor/wenlan/bbox_extractor/output/log.txt
@@ -0,0 +1,229573 @@
+[09/03 13:23:29] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 13:23:30] detectron2 INFO: Environment info:
+---------------------- ---------------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.0 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build True
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.10.0+cu102 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- ---------------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 13:23:30] detectron2 INFO: Command line arguments: None
+[09/03 13:23:30] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 13:23:30] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 13:23:30] d2.utils.env INFO: Using a generated random seed 30833344
+[09/03 13:23:30] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 13:23:30] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 13:23:30] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 13:23:36] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 13:24:56] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 13:24:57] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.0 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build True
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.0 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags /data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision/_C.so
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 13:24:57] detectron2 INFO: Command line arguments: None
+[09/03 13:24:57] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 13:24:57] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 13:24:57] d2.utils.env INFO: Using a generated random seed 57093257
+[09/03 13:24:57] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 13:24:57] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 13:24:57] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 13:25:02] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 13:39:32] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 13:39:33] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 13:39:33] detectron2 INFO: Command line arguments: None
+[09/03 13:39:33] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 13:39:33] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 13:39:33] d2.utils.env INFO: Using a generated random seed 33525286
+[09/03 13:39:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 13:39:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 13:39:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 13:39:38] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:20:52] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:20:52] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:20:52] detectron2 INFO: Command line arguments: None
+[09/03 14:20:52] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:20:52] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:20:52] d2.utils.env INFO: Using a generated random seed 52827461
+[09/03 14:20:52] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:20:52] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:20:52] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:20:57] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:46:54] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:46:55] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:46:55] detectron2 INFO: Command line arguments: None
+[09/03 14:46:55] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:46:55] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:46:55] d2.utils.env INFO: Using a generated random seed 55125752
+[09/03 14:46:55] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:46:55] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:46:55] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:00] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:01] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:01] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:01] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:01] detectron2 INFO: Command line arguments: None
+[09/03 14:47:01] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:01] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:01] d2.utils.env INFO: Using a generated random seed 1738717
+[09/03 14:47:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:03] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:04] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:04] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:04] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:04] detectron2 INFO: Command line arguments: None
+[09/03 14:47:04] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:04] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:04] d2.utils.env INFO: Using a generated random seed 4547919
+[09/03 14:47:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:05] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:06] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:06] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:07] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:07] detectron2 INFO: Command line arguments: None
+[09/03 14:47:07] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:07] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:07] d2.utils.env INFO: Using a generated random seed 7189850
+[09/03 14:47:07] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:07] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:07] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:08] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:09] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:09] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:09] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:09] detectron2 INFO: Command line arguments: None
+[09/03 14:47:09] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:09] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:09] d2.utils.env INFO: Using a generated random seed 9768793
+[09/03 14:47:09] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:09] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:09] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:11] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:11] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:11] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:12] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:12] detectron2 INFO: Command line arguments: None
+[09/03 14:47:12] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:12] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:12] d2.utils.env INFO: Using a generated random seed 12287705
+[09/03 14:47:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:13] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:14] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:14] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:14] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:14] detectron2 INFO: Command line arguments: None
+[09/03 14:47:14] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:14] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:14] d2.utils.env INFO: Using a generated random seed 14892963
+[09/03 14:47:14] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:14] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:14] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:16] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:17] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:17] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:17] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:17] detectron2 INFO: Command line arguments: None
+[09/03 14:47:17] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:17] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:17] d2.utils.env INFO: Using a generated random seed 17559912
+[09/03 14:47:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:18] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:19] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:19] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:20] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:20] detectron2 INFO: Command line arguments: None
+[09/03 14:47:20] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:20] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:20] d2.utils.env INFO: Using a generated random seed 20222714
+[09/03 14:47:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:21] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:22] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:22] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:22] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:22] detectron2 INFO: Command line arguments: None
+[09/03 14:47:22] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:22] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:22] d2.utils.env INFO: Using a generated random seed 22830637
+[09/03 14:47:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:24] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:25] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:25] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:25] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:25] detectron2 INFO: Command line arguments: None
+[09/03 14:47:25] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:25] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:25] d2.utils.env INFO: Using a generated random seed 25435980
+[09/03 14:47:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:26] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:27] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:27] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:28] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:28] detectron2 INFO: Command line arguments: None
+[09/03 14:47:28] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:28] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:28] d2.utils.env INFO: Using a generated random seed 28148566
+[09/03 14:47:28] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:28] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:28] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:29] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:30] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:30] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:30] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:30] detectron2 INFO: Command line arguments: None
+[09/03 14:47:30] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:30] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:30] d2.utils.env INFO: Using a generated random seed 30802608
+[09/03 14:47:30] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:30] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:30] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:32] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:33] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:33] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:33] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:33] detectron2 INFO: Command line arguments: None
+[09/03 14:47:33] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:33] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:33] d2.utils.env INFO: Using a generated random seed 33420420
+[09/03 14:47:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:34] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:35] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:35] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:35] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:35] detectron2 INFO: Command line arguments: None
+[09/03 14:47:35] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:35] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:35] d2.utils.env INFO: Using a generated random seed 35986645
+[09/03 14:47:35] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:35] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:35] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:37] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:38] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:38] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:38] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:38] detectron2 INFO: Command line arguments: None
+[09/03 14:47:38] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:38] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:38] d2.utils.env INFO: Using a generated random seed 38602721
+[09/03 14:47:38] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:38] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:38] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:39] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:40] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:40] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:41] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:41] detectron2 INFO: Command line arguments: None
+[09/03 14:47:41] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:41] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:41] d2.utils.env INFO: Using a generated random seed 41144795
+[09/03 14:47:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:42] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:43] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:43] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:43] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:43] detectron2 INFO: Command line arguments: None
+[09/03 14:47:43] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:43] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:43] d2.utils.env INFO: Using a generated random seed 43782597
+[09/03 14:47:43] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:43] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:43] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:45] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:46] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:46] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:46] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:46] detectron2 INFO: Command line arguments: None
+[09/03 14:47:46] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:46] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:46] d2.utils.env INFO: Using a generated random seed 46342126
+[09/03 14:47:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:47] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:48] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:48] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:48] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:48] detectron2 INFO: Command line arguments: None
+[09/03 14:47:48] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:48] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:48] d2.utils.env INFO: Using a generated random seed 48974041
+[09/03 14:47:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:50] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:51] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:51] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:51] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:51] detectron2 INFO: Command line arguments: None
+[09/03 14:47:51] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:51] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:51] d2.utils.env INFO: Using a generated random seed 51594846
+[09/03 14:47:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:52] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:53] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:53] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:54] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:54] detectron2 INFO: Command line arguments: None
+[09/03 14:47:54] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:54] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:54] d2.utils.env INFO: Using a generated random seed 54207005
+[09/03 14:47:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:55] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:56] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:56] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:56] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:56] detectron2 INFO: Command line arguments: None
+[09/03 14:47:56] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:56] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:56] d2.utils.env INFO: Using a generated random seed 56888546
+[09/03 14:47:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:58] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:47:58] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:47:58] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:47:59] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:47:59] detectron2 INFO: Command line arguments: None
+[09/03 14:47:59] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:47:59] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:47:59] d2.utils.env INFO: Using a generated random seed 59276573
+[09/03 14:47:59] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:59] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:47:59] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:00] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:01] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:01] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:01] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:01] detectron2 INFO: Command line arguments: None
+[09/03 14:48:01] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:01] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:01] d2.utils.env INFO: Using a generated random seed 1876075
+[09/03 14:48:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:03] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:04] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:04] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:04] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:04] detectron2 INFO: Command line arguments: None
+[09/03 14:48:04] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:04] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:04] d2.utils.env INFO: Using a generated random seed 4569237
+[09/03 14:48:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:05] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:06] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:06] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:07] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:07] detectron2 INFO: Command line arguments: None
+[09/03 14:48:07] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:07] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:07] d2.utils.env INFO: Using a generated random seed 7142131
+[09/03 14:48:07] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:07] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:07] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:08] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:09] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:09] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:09] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:09] detectron2 INFO: Command line arguments: None
+[09/03 14:48:09] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:09] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:09] d2.utils.env INFO: Using a generated random seed 9822753
+[09/03 14:48:09] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:09] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:09] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:11] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:12] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:12] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:12] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:12] detectron2 INFO: Command line arguments: None
+[09/03 14:48:12] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:12] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:12] d2.utils.env INFO: Using a generated random seed 12486850
+[09/03 14:48:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:13] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:14] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:14] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:15] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:15] detectron2 INFO: Command line arguments: None
+[09/03 14:48:15] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:15] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:15] d2.utils.env INFO: Using a generated random seed 15203276
+[09/03 14:48:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:16] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:17] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:17] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:17] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:17] detectron2 INFO: Command line arguments: None
+[09/03 14:48:17] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:17] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:17] d2.utils.env INFO: Using a generated random seed 17859941
+[09/03 14:48:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:19] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:20] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:20] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:20] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:20] detectron2 INFO: Command line arguments: None
+[09/03 14:48:20] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:20] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:20] d2.utils.env INFO: Using a generated random seed 20548706
+[09/03 14:48:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:21] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:22] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:22] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:23] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:23] detectron2 INFO: Command line arguments: None
+[09/03 14:48:23] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:23] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:23] d2.utils.env INFO: Using a generated random seed 23304932
+[09/03 14:48:23] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:23] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:23] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:24] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:25] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:25] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:25] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:25] detectron2 INFO: Command line arguments: None
+[09/03 14:48:25] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:25] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:25] d2.utils.env INFO: Using a generated random seed 25830505
+[09/03 14:48:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:27] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:28] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:28] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:28] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:28] detectron2 INFO: Command line arguments: None
+[09/03 14:48:28] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:28] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:28] d2.utils.env INFO: Using a generated random seed 28458302
+[09/03 14:48:28] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:28] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:28] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:29] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:30] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:30] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:31] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:31] detectron2 INFO: Command line arguments: None
+[09/03 14:48:31] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:31] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:31] d2.utils.env INFO: Using a generated random seed 31127457
+[09/03 14:48:31] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:31] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:31] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:32] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:33] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:33] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:33] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:33] detectron2 INFO: Command line arguments: None
+[09/03 14:48:33] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:33] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:33] d2.utils.env INFO: Using a generated random seed 33812024
+[09/03 14:48:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:35] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:36] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:36] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:36] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:36] detectron2 INFO: Command line arguments: None
+[09/03 14:48:36] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:36] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:36] d2.utils.env INFO: Using a generated random seed 36452534
+[09/03 14:48:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:37] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:38] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:38] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:39] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:39] detectron2 INFO: Command line arguments: None
+[09/03 14:48:39] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:39] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:39] d2.utils.env INFO: Using a generated random seed 39161734
+[09/03 14:48:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:40] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:41] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:41] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:41] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:41] detectron2 INFO: Command line arguments: None
+[09/03 14:48:41] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:41] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:41] d2.utils.env INFO: Using a generated random seed 41776937
+[09/03 14:48:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:43] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:44] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:44] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:44] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:44] detectron2 INFO: Command line arguments: None
+[09/03 14:48:44] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:44] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:44] d2.utils.env INFO: Using a generated random seed 44418747
+[09/03 14:48:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:45] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:46] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:46] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:47] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:47] detectron2 INFO: Command line arguments: None
+[09/03 14:48:47] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:47] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:47] d2.utils.env INFO: Using a generated random seed 47069540
+[09/03 14:48:47] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:47] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:47] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:48] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:49] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:49] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:49] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:49] detectron2 INFO: Command line arguments: None
+[09/03 14:48:49] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:49] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:49] d2.utils.env INFO: Using a generated random seed 49717310
+[09/03 14:48:49] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:49] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:49] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:51] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:52] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:52] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:52] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:52] detectron2 INFO: Command line arguments: None
+[09/03 14:48:52] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:52] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:52] d2.utils.env INFO: Using a generated random seed 52405370
+[09/03 14:48:52] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:52] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:52] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:53] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:54] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:54] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:54] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:54] detectron2 INFO: Command line arguments: None
+[09/03 14:48:54] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:54] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:54] d2.utils.env INFO: Using a generated random seed 54934270
+[09/03 14:48:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:56] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:57] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:57] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:48:57] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:48:57] detectron2 INFO: Command line arguments: None
+[09/03 14:48:57] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:48:57] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:48:57] d2.utils.env INFO: Using a generated random seed 57649874
+[09/03 14:48:57] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:57] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:57] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:48:58] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:48:59] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:48:59] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:00] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:00] detectron2 INFO: Command line arguments: None
+[09/03 14:49:00] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:00] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:00] d2.utils.env INFO: Using a generated random seed 211225
+[09/03 14:49:00] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:00] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:00] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:01] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:02] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:02] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:02] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:02] detectron2 INFO: Command line arguments: None
+[09/03 14:49:02] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:02] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:02] d2.utils.env INFO: Using a generated random seed 2985949
+[09/03 14:49:02] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:02] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:02] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:04] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:05] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:05] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:05] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:05] detectron2 INFO: Command line arguments: None
+[09/03 14:49:05] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:05] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:05] d2.utils.env INFO: Using a generated random seed 5722372
+[09/03 14:49:05] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:05] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:05] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:06] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:08] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:08] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:08] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:08] detectron2 INFO: Command line arguments: None
+[09/03 14:49:08] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:08] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:08] d2.utils.env INFO: Using a generated random seed 8306794
+[09/03 14:49:08] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:08] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:08] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:09] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:10] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:10] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:10] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:10] detectron2 INFO: Command line arguments: None
+[09/03 14:49:10] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:10] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:10] d2.utils.env INFO: Using a generated random seed 11004840
+[09/03 14:49:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:11] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:12] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:13] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:13] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:13] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:13] detectron2 INFO: Command line arguments: None
+[09/03 14:49:13] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:13] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:13] d2.utils.env INFO: Using a generated random seed 13744644
+[09/03 14:49:13] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:13] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:13] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:15] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:16] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:16] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:16] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:16] detectron2 INFO: Command line arguments: None
+[09/03 14:49:16] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:16] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:16] d2.utils.env INFO: Using a generated random seed 16409548
+[09/03 14:49:16] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:16] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:16] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:17] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:18] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:18] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:19] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:19] detectron2 INFO: Command line arguments: None
+[09/03 14:49:19] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:19] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:19] d2.utils.env INFO: Using a generated random seed 19053610
+[09/03 14:49:19] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:19] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:19] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:20] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:21] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:21] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:21] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:21] detectron2 INFO: Command line arguments: None
+[09/03 14:49:21] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:21] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:21] d2.utils.env INFO: Using a generated random seed 21681236
+[09/03 14:49:21] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:21] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:21] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:22] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:24] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:24] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:24] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:24] detectron2 INFO: Command line arguments: None
+[09/03 14:49:24] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:24] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:24] d2.utils.env INFO: Using a generated random seed 24314434
+[09/03 14:49:24] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:24] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:24] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:25] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:26] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:26] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:27] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:27] detectron2 INFO: Command line arguments: None
+[09/03 14:49:27] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:27] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:27] d2.utils.env INFO: Using a generated random seed 27041952
+[09/03 14:49:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:28] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:29] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:29] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:29] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:29] detectron2 INFO: Command line arguments: None
+[09/03 14:49:29] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:29] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:29] d2.utils.env INFO: Using a generated random seed 29631286
+[09/03 14:49:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:30] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:32] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:32] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:32] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:32] detectron2 INFO: Command line arguments: None
+[09/03 14:49:32] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:32] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:32] d2.utils.env INFO: Using a generated random seed 32332739
+[09/03 14:49:32] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:32] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:32] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:33] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:34] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:34] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:34] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:34] detectron2 INFO: Command line arguments: None
+[09/03 14:49:34] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:34] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:34] d2.utils.env INFO: Using a generated random seed 34979304
+[09/03 14:49:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:36] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:37] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:37] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:37] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:37] detectron2 INFO: Command line arguments: None
+[09/03 14:49:37] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:37] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:37] d2.utils.env INFO: Using a generated random seed 37536469
+[09/03 14:49:37] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:37] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:37] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:38] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:39] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:39] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:40] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:40] detectron2 INFO: Command line arguments: None
+[09/03 14:49:40] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:40] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:40] d2.utils.env INFO: Using a generated random seed 40126679
+[09/03 14:49:40] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:40] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:40] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:41] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:42] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:42] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:42] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:42] detectron2 INFO: Command line arguments: None
+[09/03 14:49:42] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:42] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:42] d2.utils.env INFO: Using a generated random seed 42809433
+[09/03 14:49:42] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:42] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:42] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:44] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:45] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:45] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:45] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:45] detectron2 INFO: Command line arguments: None
+[09/03 14:49:45] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:45] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:45] d2.utils.env INFO: Using a generated random seed 45467401
+[09/03 14:49:45] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:45] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:45] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:46] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:47] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:47] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:48] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:48] detectron2 INFO: Command line arguments: None
+[09/03 14:49:48] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:48] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:48] d2.utils.env INFO: Using a generated random seed 48129706
+[09/03 14:49:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:49] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:50] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:50] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:50] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:50] detectron2 INFO: Command line arguments: None
+[09/03 14:49:50] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:50] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:50] d2.utils.env INFO: Using a generated random seed 50737990
+[09/03 14:49:50] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:50] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:50] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:51] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:53] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:53] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:53] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:53] detectron2 INFO: Command line arguments: None
+[09/03 14:49:53] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:53] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:53] d2.utils.env INFO: Using a generated random seed 53425336
+[09/03 14:49:53] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:53] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:53] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:54] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:55] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:55] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:55] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:55] detectron2 INFO: Command line arguments: None
+[09/03 14:49:55] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:55] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:55] d2.utils.env INFO: Using a generated random seed 56001670
+[09/03 14:49:55] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:57] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:49:58] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:49:58] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:49:58] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:49:58] detectron2 INFO: Command line arguments: None
+[09/03 14:49:58] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:49:58] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:49:58] d2.utils.env INFO: Using a generated random seed 58657946
+[09/03 14:49:58] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:58] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:49:58] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:00] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:01] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:01] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:01] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:01] detectron2 INFO: Command line arguments: None
+[09/03 14:50:01] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:01] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:01] d2.utils.env INFO: Using a generated random seed 1385208
+[09/03 14:50:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:02] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:03] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:03] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:03] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:03] detectron2 INFO: Command line arguments: None
+[09/03 14:50:03] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:03] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:03] d2.utils.env INFO: Using a generated random seed 4068109
+[09/03 14:50:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:05] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:06] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:06] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:06] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:06] detectron2 INFO: Command line arguments: None
+[09/03 14:50:06] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:06] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:06] d2.utils.env INFO: Using a generated random seed 6673187
+[09/03 14:50:06] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:06] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:06] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:07] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:08] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:08] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:09] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:09] detectron2 INFO: Command line arguments: None
+[09/03 14:50:09] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:09] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:09] d2.utils.env INFO: Using a generated random seed 9214287
+[09/03 14:50:09] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:09] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:09] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:10] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:11] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:11] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:11] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:11] detectron2 INFO: Command line arguments: None
+[09/03 14:50:11] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:11] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:11] d2.utils.env INFO: Using a generated random seed 11891377
+[09/03 14:50:11] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:11] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:11] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:13] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:14] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:14] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:14] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:14] detectron2 INFO: Command line arguments: None
+[09/03 14:50:14] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:14] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:14] d2.utils.env INFO: Using a generated random seed 14575441
+[09/03 14:50:14] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:14] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:14] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:15] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:16] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:16] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:17] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:17] detectron2 INFO: Command line arguments: None
+[09/03 14:50:17] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:17] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:17] d2.utils.env INFO: Using a generated random seed 17206823
+[09/03 14:50:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:18] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:19] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:19] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:19] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:19] detectron2 INFO: Command line arguments: None
+[09/03 14:50:19] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:19] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:19] d2.utils.env INFO: Using a generated random seed 19840545
+[09/03 14:50:19] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:19] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:19] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:21] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:22] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:22] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:22] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:22] detectron2 INFO: Command line arguments: None
+[09/03 14:50:22] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:22] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:22] d2.utils.env INFO: Using a generated random seed 22442997
+[09/03 14:50:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:23] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:24] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:24] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:25] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:25] detectron2 INFO: Command line arguments: None
+[09/03 14:50:25] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:25] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:25] d2.utils.env INFO: Using a generated random seed 25107402
+[09/03 14:50:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:26] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:27] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:27] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:27] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:27] detectron2 INFO: Command line arguments: None
+[09/03 14:50:27] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:27] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:27] d2.utils.env INFO: Using a generated random seed 27776725
+[09/03 14:50:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:29] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:30] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:30] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:30] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:30] detectron2 INFO: Command line arguments: None
+[09/03 14:50:30] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:30] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:30] d2.utils.env INFO: Using a generated random seed 30412638
+[09/03 14:50:30] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:30] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:30] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:31] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:32] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:32] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:33] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:33] detectron2 INFO: Command line arguments: None
+[09/03 14:50:33] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:33] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:33] d2.utils.env INFO: Using a generated random seed 33069036
+[09/03 14:50:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:34] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:35] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:35] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:35] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:35] detectron2 INFO: Command line arguments: None
+[09/03 14:50:35] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:35] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:35] d2.utils.env INFO: Using a generated random seed 35629625
+[09/03 14:50:35] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:35] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:35] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:36] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:38] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:38] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:38] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:38] detectron2 INFO: Command line arguments: None
+[09/03 14:50:38] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:38] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:38] d2.utils.env INFO: Using a generated random seed 38355663
+[09/03 14:50:38] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:38] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:38] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:39] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:40] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:40] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:40] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:40] detectron2 INFO: Command line arguments: None
+[09/03 14:50:40] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:40] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:40] d2.utils.env INFO: Using a generated random seed 41047347
+[09/03 14:50:40] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:42] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:43] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:43] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:43] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:43] detectron2 INFO: Command line arguments: None
+[09/03 14:50:43] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:43] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:43] d2.utils.env INFO: Using a generated random seed 43656752
+[09/03 14:50:43] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:43] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:43] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:44] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:45] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:45] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:46] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:46] detectron2 INFO: Command line arguments: None
+[09/03 14:50:46] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:46] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:46] d2.utils.env INFO: Using a generated random seed 46247615
+[09/03 14:50:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:47] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:48] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:48] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:48] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:48] detectron2 INFO: Command line arguments: None
+[09/03 14:50:48] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:48] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:48] d2.utils.env INFO: Using a generated random seed 48944079
+[09/03 14:50:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:50] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:51] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:51] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:51] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:51] detectron2 INFO: Command line arguments: None
+[09/03 14:50:51] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:51] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:51] d2.utils.env INFO: Using a generated random seed 51600453
+[09/03 14:50:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:52] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:54] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:54] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:54] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:54] detectron2 INFO: Command line arguments: None
+[09/03 14:50:54] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:54] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:54] d2.utils.env INFO: Using a generated random seed 54277258
+[09/03 14:50:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:55] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:56] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:56] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:56] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:56] detectron2 INFO: Command line arguments: None
+[09/03 14:50:56] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:56] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:56] d2.utils.env INFO: Using a generated random seed 56905843
+[09/03 14:50:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:58] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:50:59] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:50:59] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:50:59] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:50:59] detectron2 INFO: Command line arguments: None
+[09/03 14:50:59] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:50:59] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:50:59] d2.utils.env INFO: Using a generated random seed 59477861
+[09/03 14:50:59] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:59] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:50:59] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:00] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:51:01] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:51:01] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:51:02] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:51:02] detectron2 INFO: Command line arguments: None
+[09/03 14:51:02] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:51:02] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:51:02] d2.utils.env INFO: Using a generated random seed 2105731
+[09/03 14:51:02] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:02] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:02] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:03] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:51:04] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:51:04] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:51:04] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:51:04] detectron2 INFO: Command line arguments: None
+[09/03 14:51:04] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:51:04] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:51:04] d2.utils.env INFO: Using a generated random seed 4814378
+[09/03 14:51:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:06] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:51:07] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:51:07] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:51:07] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:51:07] detectron2 INFO: Command line arguments: None
+[09/03 14:51:07] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:51:07] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:51:07] d2.utils.env INFO: Using a generated random seed 7445837
+[09/03 14:51:07] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:07] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:07] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:08] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:51:09] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:51:09] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:51:09] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:51:09] detectron2 INFO: Command line arguments: None
+[09/03 14:51:09] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:51:10] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:51:10] d2.utils.env INFO: Using a generated random seed 10038845
+[09/03 14:51:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:11] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:51:12] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:51:12] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:51:12] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:51:12] detectron2 INFO: Command line arguments: None
+[09/03 14:51:12] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:51:12] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:51:12] d2.utils.env INFO: Using a generated random seed 12648513
+[09/03 14:51:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:13] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:51:14] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:51:14] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:51:15] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:51:15] detectron2 INFO: Command line arguments: None
+[09/03 14:51:15] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:51:15] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:51:15] d2.utils.env INFO: Using a generated random seed 15254862
+[09/03 14:51:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:16] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:51:17] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:51:17] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:51:17] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:51:17] detectron2 INFO: Command line arguments: None
+[09/03 14:51:17] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:51:17] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:51:17] d2.utils.env INFO: Using a generated random seed 17928798
+[09/03 14:51:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:19] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/03 14:51:20] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/03 14:51:20] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/03 14:51:20] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.1.0
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/03 14:51:20] detectron2 INFO: Command line arguments: None
+[09/03 14:51:20] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/03 14:51:20] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/03 14:51:20] d2.utils.env INFO: Using a generated random seed 20484172
+[09/03 14:51:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/03 14:51:21] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:17:58] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:17:59] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:17:59] detectron2 INFO: Command line arguments: None
+[09/08 16:17:59] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:17:59] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:17:59] d2.utils.env INFO: Using a generated random seed 59482882
+[09/08 16:17:59] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:17:59] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:17:59] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:04] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:05] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:05] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:06] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:06] detectron2 INFO: Command line arguments: None
+[09/08 16:18:06] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:06] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:06] d2.utils.env INFO: Using a generated random seed 6126313
+[09/08 16:18:06] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:06] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:06] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:07] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:08] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:08] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:08] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:08] detectron2 INFO: Command line arguments: None
+[09/08 16:18:08] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:08] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:08] d2.utils.env INFO: Using a generated random seed 8540962
+[09/08 16:18:08] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:08] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:08] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:09] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:10] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:10] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:10] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:10] detectron2 INFO: Command line arguments: None
+[09/08 16:18:10] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:10] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:10] d2.utils.env INFO: Using a generated random seed 10852680
+[09/08 16:18:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:12] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:12] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:12] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:13] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:13] detectron2 INFO: Command line arguments: None
+[09/08 16:18:13] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:13] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:13] d2.utils.env INFO: Using a generated random seed 13182223
+[09/08 16:18:13] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:13] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:13] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:14] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:15] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:15] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:15] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:15] detectron2 INFO: Command line arguments: None
+[09/08 16:18:15] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:15] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:15] d2.utils.env INFO: Using a generated random seed 15543562
+[09/08 16:18:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:16] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:17] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:17] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:17] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:17] detectron2 INFO: Command line arguments: None
+[09/08 16:18:17] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:17] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:17] d2.utils.env INFO: Using a generated random seed 17882620
+[09/08 16:18:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:19] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:19] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:19] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:20] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:20] detectron2 INFO: Command line arguments: None
+[09/08 16:18:20] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:20] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:20] d2.utils.env INFO: Using a generated random seed 20218291
+[09/08 16:18:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:21] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:22] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:22] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:22] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:22] detectron2 INFO: Command line arguments: None
+[09/08 16:18:22] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:22] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:22] d2.utils.env INFO: Using a generated random seed 22573061
+[09/08 16:18:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:23] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:24] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:24] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:24] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:24] detectron2 INFO: Command line arguments: None
+[09/08 16:18:24] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:24] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:24] d2.utils.env INFO: Using a generated random seed 24912167
+[09/08 16:18:24] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:24] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:24] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:26] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:26] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:26] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:27] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:27] detectron2 INFO: Command line arguments: None
+[09/08 16:18:27] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:27] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:27] d2.utils.env INFO: Using a generated random seed 27302366
+[09/08 16:18:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:28] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:29] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:29] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:29] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:29] detectron2 INFO: Command line arguments: None
+[09/08 16:18:29] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:29] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:29] d2.utils.env INFO: Using a generated random seed 29598188
+[09/08 16:18:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:30] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:31] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:31] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:31] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:31] detectron2 INFO: Command line arguments: None
+[09/08 16:18:31] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:31] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:31] d2.utils.env INFO: Using a generated random seed 31950034
+[09/08 16:18:31] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:31] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:31] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:33] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:34] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:34] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:34] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:34] detectron2 INFO: Command line arguments: None
+[09/08 16:18:34] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:34] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:34] d2.utils.env INFO: Using a generated random seed 34398855
+[09/08 16:18:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:35] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:36] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:36] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:36] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:36] detectron2 INFO: Command line arguments: None
+[09/08 16:18:36] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:36] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:36] d2.utils.env INFO: Using a generated random seed 36968577
+[09/08 16:18:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:38] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:39] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:39] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:39] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:39] detectron2 INFO: Command line arguments: None
+[09/08 16:18:39] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:39] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:39] d2.utils.env INFO: Using a generated random seed 39307591
+[09/08 16:18:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:40] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:41] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:41] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:41] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:41] detectron2 INFO: Command line arguments: None
+[09/08 16:18:41] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:41] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:41] d2.utils.env INFO: Using a generated random seed 41877146
+[09/08 16:18:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:43] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:43] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:43] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:44] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:44] detectron2 INFO: Command line arguments: None
+[09/08 16:18:44] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:44] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:44] d2.utils.env INFO: Using a generated random seed 44186943
+[09/08 16:18:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:45] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:46] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:46] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:46] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:46] detectron2 INFO: Command line arguments: None
+[09/08 16:18:46] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:46] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:46] d2.utils.env INFO: Using a generated random seed 46621000
+[09/08 16:18:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:47] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:49] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:49] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:49] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:49] detectron2 INFO: Command line arguments: None
+[09/08 16:18:49] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:49] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:49] d2.utils.env INFO: Using a generated random seed 49335755
+[09/08 16:18:49] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:49] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:49] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:50] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:51] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:51] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:51] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:51] detectron2 INFO: Command line arguments: None
+[09/08 16:18:51] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:51] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:51] d2.utils.env INFO: Using a generated random seed 51744325
+[09/08 16:18:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:52] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:53] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:53] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:54] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:54] detectron2 INFO: Command line arguments: None
+[09/08 16:18:54] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:54] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:54] d2.utils.env INFO: Using a generated random seed 54056142
+[09/08 16:18:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:55] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:56] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:56] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:56] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:56] detectron2 INFO: Command line arguments: None
+[09/08 16:18:56] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:56] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:56] d2.utils.env INFO: Using a generated random seed 56410840
+[09/08 16:18:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:57] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:18:58] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:18:58] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:18:58] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:18:58] detectron2 INFO: Command line arguments: None
+[09/08 16:18:58] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:18:58] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:18:58] d2.utils.env INFO: Using a generated random seed 58860805
+[09/08 16:18:58] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:58] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:18:58] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:00] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:00] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:00] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:01] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:01] detectron2 INFO: Command line arguments: None
+[09/08 16:19:01] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:01] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:01] d2.utils.env INFO: Using a generated random seed 1225873
+[09/08 16:19:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:02] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:03] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:03] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:03] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:03] detectron2 INFO: Command line arguments: None
+[09/08 16:19:03] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:03] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:03] d2.utils.env INFO: Using a generated random seed 3506101
+[09/08 16:19:03] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:03] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:03] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:04] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:05] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:05] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:05] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:05] detectron2 INFO: Command line arguments: None
+[09/08 16:19:05] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:05] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:05] d2.utils.env INFO: Using a generated random seed 5852029
+[09/08 16:19:05] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:05] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:05] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:07] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:07] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:07] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:08] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:08] detectron2 INFO: Command line arguments: None
+[09/08 16:19:08] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:08] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:08] d2.utils.env INFO: Using a generated random seed 8174499
+[09/08 16:19:08] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:08] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:08] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:09] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:10] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:10] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:10] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:10] detectron2 INFO: Command line arguments: None
+[09/08 16:19:10] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:10] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:10] d2.utils.env INFO: Using a generated random seed 10516341
+[09/08 16:19:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:11] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:12] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:12] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:12] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:12] detectron2 INFO: Command line arguments: None
+[09/08 16:19:12] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:12] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:12] d2.utils.env INFO: Using a generated random seed 12863666
+[09/08 16:19:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:14] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:15] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:15] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:15] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:15] detectron2 INFO: Command line arguments: None
+[09/08 16:19:15] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:15] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:15] d2.utils.env INFO: Using a generated random seed 15489525
+[09/08 16:19:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:16] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:17] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:17] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:17] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:17] detectron2 INFO: Command line arguments: None
+[09/08 16:19:17] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:17] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:17] d2.utils.env INFO: Using a generated random seed 18016882
+[09/08 16:19:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:19] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:20] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:20] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:20] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:20] detectron2 INFO: Command line arguments: None
+[09/08 16:19:20] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:20] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:20] d2.utils.env INFO: Using a generated random seed 20584023
+[09/08 16:19:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:21] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:22] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:22] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:22] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:22] detectron2 INFO: Command line arguments: None
+[09/08 16:19:22] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:22] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:22] d2.utils.env INFO: Using a generated random seed 22979873
+[09/08 16:19:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:24] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:24] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:24] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:25] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:25] detectron2 INFO: Command line arguments: None
+[09/08 16:19:25] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:25] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:25] d2.utils.env INFO: Using a generated random seed 25306645
+[09/08 16:19:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:26] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:27] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:27] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:27] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:27] detectron2 INFO: Command line arguments: None
+[09/08 16:19:27] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:27] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:27] d2.utils.env INFO: Using a generated random seed 27599964
+[09/08 16:19:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:28] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:29] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:29] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:29] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:29] detectron2 INFO: Command line arguments: None
+[09/08 16:19:29] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:29] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:29] d2.utils.env INFO: Using a generated random seed 29953843
+[09/08 16:19:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:31] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:32] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:32] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:32] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:32] detectron2 INFO: Command line arguments: None
+[09/08 16:19:32] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:32] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:32] d2.utils.env INFO: Using a generated random seed 32339962
+[09/08 16:19:32] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:32] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:32] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:33] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:34] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:34] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:34] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:34] detectron2 INFO: Command line arguments: None
+[09/08 16:19:34] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:34] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:34] d2.utils.env INFO: Using a generated random seed 34698908
+[09/08 16:19:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:35] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:36] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:36] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:36] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:36] detectron2 INFO: Command line arguments: None
+[09/08 16:19:36] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:36] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:36] d2.utils.env INFO: Using a generated random seed 36999682
+[09/08 16:19:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:38] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:39] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:39] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:39] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:39] detectron2 INFO: Command line arguments: None
+[09/08 16:19:39] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:39] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:39] d2.utils.env INFO: Using a generated random seed 39533539
+[09/08 16:19:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:40] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:41] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:41] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:41] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:41] detectron2 INFO: Command line arguments: None
+[09/08 16:19:41] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:41] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:41] d2.utils.env INFO: Using a generated random seed 41824394
+[09/08 16:19:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:43] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:43] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:43] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:44] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:44] detectron2 INFO: Command line arguments: None
+[09/08 16:19:44] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:44] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:44] d2.utils.env INFO: Using a generated random seed 44176472
+[09/08 16:19:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:45] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:46] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:46] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:46] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:46] detectron2 INFO: Command line arguments: None
+[09/08 16:19:46] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:46] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:46] d2.utils.env INFO: Using a generated random seed 46527268
+[09/08 16:19:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:47] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:48] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:48] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:48] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:48] detectron2 INFO: Command line arguments: None
+[09/08 16:19:48] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:48] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:48] d2.utils.env INFO: Using a generated random seed 48946706
+[09/08 16:19:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:50] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:51] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:51] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:51] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:51] detectron2 INFO: Command line arguments: None
+[09/08 16:19:51] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:51] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:51] d2.utils.env INFO: Using a generated random seed 51317442
+[09/08 16:19:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:52] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:53] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:53] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:53] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:53] detectron2 INFO: Command line arguments: None
+[09/08 16:19:53] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:53] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:53] d2.utils.env INFO: Using a generated random seed 53844950
+[09/08 16:19:53] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:53] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:53] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:55] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:55] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:55] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:56] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:56] detectron2 INFO: Command line arguments: None
+[09/08 16:19:56] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:56] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:56] d2.utils.env INFO: Using a generated random seed 56282710
+[09/08 16:19:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:57] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:19:58] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:19:58] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:19:58] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:19:58] detectron2 INFO: Command line arguments: None
+[09/08 16:19:58] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:19:58] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:19:58] d2.utils.env INFO: Using a generated random seed 58866820
+[09/08 16:19:58] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:58] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:19:58] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:00] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:01] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:01] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:01] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:01] detectron2 INFO: Command line arguments: None
+[09/08 16:20:01] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:01] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:01] d2.utils.env INFO: Using a generated random seed 1343303
+[09/08 16:20:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:02] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:03] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:03] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:03] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:03] detectron2 INFO: Command line arguments: None
+[09/08 16:20:03] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:03] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:03] d2.utils.env INFO: Using a generated random seed 3793285
+[09/08 16:20:03] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:03] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:03] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:05] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:05] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:05] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:05] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:05] detectron2 INFO: Command line arguments: None
+[09/08 16:20:05] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:05] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:05] d2.utils.env INFO: Using a generated random seed 6029527
+[09/08 16:20:06] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:06] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:06] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:07] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:08] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:08] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:08] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:08] detectron2 INFO: Command line arguments: None
+[09/08 16:20:08] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:08] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:08] d2.utils.env INFO: Using a generated random seed 8394744
+[09/08 16:20:08] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:08] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:08] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:09] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:10] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:10] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:10] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:10] detectron2 INFO: Command line arguments: None
+[09/08 16:20:10] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:10] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:10] d2.utils.env INFO: Using a generated random seed 10759824
+[09/08 16:20:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:12] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:12] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:12] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:12] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:12] detectron2 INFO: Command line arguments: None
+[09/08 16:20:12] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:12] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:12] d2.utils.env INFO: Using a generated random seed 13057483
+[09/08 16:20:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:13] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:14] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:15] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:15] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:15] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:15] detectron2 INFO: Command line arguments: None
+[09/08 16:20:15] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:15] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:15] d2.utils.env INFO: Using a generated random seed 15361993
+[09/08 16:20:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:16] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:17] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:17] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:17] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:17] detectron2 INFO: Command line arguments: None
+[09/08 16:20:17] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:17] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:17] d2.utils.env INFO: Using a generated random seed 17862804
+[09/08 16:20:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:19] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:20] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:20] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:20] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:20] detectron2 INFO: Command line arguments: None
+[09/08 16:20:20] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:20] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:20] d2.utils.env INFO: Using a generated random seed 20372617
+[09/08 16:20:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:21] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:22] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:22] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:22] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:22] detectron2 INFO: Command line arguments: None
+[09/08 16:20:22] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:22] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:22] d2.utils.env INFO: Using a generated random seed 22719332
+[09/08 16:20:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:23] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:24] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:24] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:24] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:24] detectron2 INFO: Command line arguments: None
+[09/08 16:20:24] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:24] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:24] d2.utils.env INFO: Using a generated random seed 25030526
+[09/08 16:20:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:25] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:26] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:27] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:27] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:27] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:27] detectron2 INFO: Command line arguments: None
+[09/08 16:20:27] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:27] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:27] d2.utils.env INFO: Using a generated random seed 27376544
+[09/08 16:20:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:28] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:29] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:29] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:29] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:29] detectron2 INFO: Command line arguments: None
+[09/08 16:20:29] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:29] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:29] d2.utils.env INFO: Using a generated random seed 29721654
+[09/08 16:20:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:31] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:32] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:32] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:32] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:32] detectron2 INFO: Command line arguments: None
+[09/08 16:20:32] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:32] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:32] d2.utils.env INFO: Using a generated random seed 32411072
+[09/08 16:20:32] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:32] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:32] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:33] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:34] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:34] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:34] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:34] detectron2 INFO: Command line arguments: None
+[09/08 16:20:34] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:34] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:34] d2.utils.env INFO: Using a generated random seed 34825613
+[09/08 16:20:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:36] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:36] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:36] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:37] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:37] detectron2 INFO: Command line arguments: None
+[09/08 16:20:37] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:37] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:37] d2.utils.env INFO: Using a generated random seed 37243193
+[09/08 16:20:37] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:37] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:37] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:38] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:39] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:39] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:39] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:39] detectron2 INFO: Command line arguments: None
+[09/08 16:20:39] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:39] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:39] d2.utils.env INFO: Using a generated random seed 39588651
+[09/08 16:20:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:40] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:41] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:41] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:42] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:42] detectron2 INFO: Command line arguments: None
+[09/08 16:20:42] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:42] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:42] d2.utils.env INFO: Using a generated random seed 42105903
+[09/08 16:20:42] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:42] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:42] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:43] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:44] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:44] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:44] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:44] detectron2 INFO: Command line arguments: None
+[09/08 16:20:44] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:44] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:44] d2.utils.env INFO: Using a generated random seed 44502419
+[09/08 16:20:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:45] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:46] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:46] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:46] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:46] detectron2 INFO: Command line arguments: None
+[09/08 16:20:46] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:46] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:46] d2.utils.env INFO: Using a generated random seed 46939451
+[09/08 16:20:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:48] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:49] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:49] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:49] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:49] detectron2 INFO: Command line arguments: None
+[09/08 16:20:49] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:49] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:49] d2.utils.env INFO: Using a generated random seed 49302932
+[09/08 16:20:49] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:49] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:49] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:50] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:51] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:51] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:51] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:51] detectron2 INFO: Command line arguments: None
+[09/08 16:20:51] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:51] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:51] d2.utils.env INFO: Using a generated random seed 51663113
+[09/08 16:20:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:52] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:54] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:54] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:54] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:54] detectron2 INFO: Command line arguments: None
+[09/08 16:20:54] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:54] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:54] d2.utils.env INFO: Using a generated random seed 54335656
+[09/08 16:20:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:54] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:55] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:56] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:56] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:56] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:56] detectron2 INFO: Command line arguments: None
+[09/08 16:20:56] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:56] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:56] d2.utils.env INFO: Using a generated random seed 56654700
+[09/08 16:20:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:56] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:57] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:20:59] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:20:59] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:20:59] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:20:59] detectron2 INFO: Command line arguments: None
+[09/08 16:20:59] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:20:59] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:20:59] d2.utils.env INFO: Using a generated random seed 59362886
+[09/08 16:20:59] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:59] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:20:59] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:00] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:21:01] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:21:01] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:21:01] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:21:01] detectron2 INFO: Command line arguments: None
+[09/08 16:21:01] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:21:01] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:21:01] d2.utils.env INFO: Using a generated random seed 1957753
+[09/08 16:21:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:01] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:03] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:21:04] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:21:04] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:21:04] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:21:04] detectron2 INFO: Command line arguments: None
+[09/08 16:21:04] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:21:04] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:21:04] d2.utils.env INFO: Using a generated random seed 4560929
+[09/08 16:21:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:04] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:05] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:21:06] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:21:06] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:21:06] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:21:06] detectron2 INFO: Command line arguments: None
+[09/08 16:21:06] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:21:06] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:21:06] d2.utils.env INFO: Using a generated random seed 7002656
+[09/08 16:21:06] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:06] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:06] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:08] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:21:09] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:21:09] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:21:09] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:21:09] detectron2 INFO: Command line arguments: None
+[09/08 16:21:09] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:21:09] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:21:09] d2.utils.env INFO: Using a generated random seed 9280553
+[09/08 16:21:09] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:09] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:09] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:10] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:21:11] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:21:11] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:21:11] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:21:11] detectron2 INFO: Command line arguments: None
+[09/08 16:21:11] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:21:11] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:21:11] d2.utils.env INFO: Using a generated random seed 11675746
+[09/08 16:21:11] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:11] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:11] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:12] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:21:13] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:21:13] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:21:13] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:21:13] detectron2 INFO: Command line arguments: None
+[09/08 16:21:13] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:21:13] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:21:13] d2.utils.env INFO: Using a generated random seed 14036865
+[09/08 16:21:13] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:13] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:13] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:15] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:21:16] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:21:16] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:21:16] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:21:16] detectron2 INFO: Command line arguments: None
+[09/08 16:21:16] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:21:16] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:21:16] d2.utils.env INFO: Using a generated random seed 16693342
+[09/08 16:21:16] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:16] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:16] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:17] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:21:19] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:21:19] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:21:19] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:21:19] detectron2 INFO: Command line arguments: None
+[09/08 16:21:19] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:21:19] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:21:19] d2.utils.env INFO: Using a generated random seed 19370380
+[09/08 16:21:19] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:19] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:19] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:20] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:21:21] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:21:21] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:21:21] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:21:21] detectron2 INFO: Command line arguments: None
+[09/08 16:21:21] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:21:21] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:21:21] d2.utils.env INFO: Using a generated random seed 22047435
+[09/08 16:21:21] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:21] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:23] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/08 16:21:24] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/08 16:21:24] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/08 16:21:24] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/08 16:21:24] detectron2 INFO: Command line arguments: None
+[09/08 16:21:24] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/08 16:21:24] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/08 16:21:24] d2.utils.env INFO: Using a generated random seed 24651220
+[09/08 16:21:24] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:24] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:24] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/08 16:21:25] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:13] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:20] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:20] detectron2 INFO: Command line arguments: None
+[09/12 16:14:20] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:20] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:20] d2.utils.env INFO: Using a generated random seed 20540862
+[09/12 16:14:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:20] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:25] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:26] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:26] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:26] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:26] detectron2 INFO: Command line arguments: None
+[09/12 16:14:26] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:26] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:26] d2.utils.env INFO: Using a generated random seed 27000631
+[09/12 16:14:26] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:26] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:27] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:28] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:29] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:29] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:29] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:29] detectron2 INFO: Command line arguments: None
+[09/12 16:14:29] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:29] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:29] d2.utils.env INFO: Using a generated random seed 29394872
+[09/12 16:14:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:30] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:31] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:31] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:31] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:31] detectron2 INFO: Command line arguments: None
+[09/12 16:14:31] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:31] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:31] d2.utils.env INFO: Using a generated random seed 31833574
+[09/12 16:14:31] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:31] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:31] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:33] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:33] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:33] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:34] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:34] detectron2 INFO: Command line arguments: None
+[09/12 16:14:34] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:34] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:34] d2.utils.env INFO: Using a generated random seed 34155468
+[09/12 16:14:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:34] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:35] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:36] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:36] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:36] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:36] detectron2 INFO: Command line arguments: None
+[09/12 16:14:36] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:36] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:36] d2.utils.env INFO: Using a generated random seed 36533255
+[09/12 16:14:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:37] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:38] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:38] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:38] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:38] detectron2 INFO: Command line arguments: None
+[09/12 16:14:38] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:38] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:38] d2.utils.env INFO: Using a generated random seed 38849929
+[09/12 16:14:38] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:38] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:38] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:40] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:40] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:40] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:41] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:41] detectron2 INFO: Command line arguments: None
+[09/12 16:14:41] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:41] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:41] d2.utils.env INFO: Using a generated random seed 41187110
+[09/12 16:14:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:42] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:43] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:43] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:43] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:43] detectron2 INFO: Command line arguments: None
+[09/12 16:14:43] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:43] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:43] d2.utils.env INFO: Using a generated random seed 43617952
+[09/12 16:14:43] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:43] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:43] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:44] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:45] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:45] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:45] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:45] detectron2 INFO: Command line arguments: None
+[09/12 16:14:45] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:45] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:45] d2.utils.env INFO: Using a generated random seed 45998531
+[09/12 16:14:45] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:45] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:45] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:47] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:48] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:48] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:48] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:48] detectron2 INFO: Command line arguments: None
+[09/12 16:14:48] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:48] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:48] d2.utils.env INFO: Using a generated random seed 48307474
+[09/12 16:14:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:49] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:50] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:50] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:50] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:50] detectron2 INFO: Command line arguments: None
+[09/12 16:14:50] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:50] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:50] d2.utils.env INFO: Using a generated random seed 50657327
+[09/12 16:14:50] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:50] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:50] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:51] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:52] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:52] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:52] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:52] detectron2 INFO: Command line arguments: None
+[09/12 16:14:52] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:52] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:52] d2.utils.env INFO: Using a generated random seed 52970988
+[09/12 16:14:52] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:52] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:52] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:54] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:55] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:55] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:55] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:55] detectron2 INFO: Command line arguments: None
+[09/12 16:14:55] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:55] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:55] d2.utils.env INFO: Using a generated random seed 55407226
+[09/12 16:14:55] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:55] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:55] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:56] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:14:57] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:14:57] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:14:57] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:14:57] detectron2 INFO: Command line arguments: None
+[09/12 16:14:57] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:14:57] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:14:57] d2.utils.env INFO: Using a generated random seed 57987311
+[09/12 16:14:57] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:57] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:57] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:14:59] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:00] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:00] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:00] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:00] detectron2 INFO: Command line arguments: None
+[09/12 16:15:00] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:00] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:00] d2.utils.env INFO: Using a generated random seed 309319
+[09/12 16:15:00] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:00] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:00] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:01] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:02] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:02] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:02] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:02] detectron2 INFO: Command line arguments: None
+[09/12 16:15:02] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:02] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:02] d2.utils.env INFO: Using a generated random seed 2849165
+[09/12 16:15:02] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:02] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:02] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:04] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:04] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:04] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:05] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:05] detectron2 INFO: Command line arguments: None
+[09/12 16:15:05] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:05] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:05] d2.utils.env INFO: Using a generated random seed 5134967
+[09/12 16:15:05] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:05] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:05] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:06] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:07] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:07] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:07] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:07] detectron2 INFO: Command line arguments: None
+[09/12 16:15:07] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:07] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:07] d2.utils.env INFO: Using a generated random seed 7578475
+[09/12 16:15:07] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:07] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:07] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:08] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:09] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:09] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:10] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:10] detectron2 INFO: Command line arguments: None
+[09/12 16:15:10] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:10] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:10] d2.utils.env INFO: Using a generated random seed 10231675
+[09/12 16:15:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:10] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:11] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:12] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:12] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:12] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:12] detectron2 INFO: Command line arguments: None
+[09/12 16:15:12] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:12] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:12] d2.utils.env INFO: Using a generated random seed 12680592
+[09/12 16:15:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:12] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:13] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:14] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:14] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:15] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:15] detectron2 INFO: Command line arguments: None
+[09/12 16:15:15] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:15] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:15] d2.utils.env INFO: Using a generated random seed 15095059
+[09/12 16:15:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:15] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:16] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:17] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:17] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:17] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:17] detectron2 INFO: Command line arguments: None
+[09/12 16:15:17] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:17] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:17] d2.utils.env INFO: Using a generated random seed 17467929
+[09/12 16:15:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:17] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:18] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:19] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:19] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:19] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:19] detectron2 INFO: Command line arguments: None
+[09/12 16:15:19] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:19] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:19] d2.utils.env INFO: Using a generated random seed 19956009
+[09/12 16:15:19] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:19] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:19] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:21] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:21] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:21] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:22] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:22] detectron2 INFO: Command line arguments: None
+[09/12 16:15:22] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:22] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:22] d2.utils.env INFO: Using a generated random seed 22286204
+[09/12 16:15:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:22] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:23] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:24] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:24] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:24] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:24] detectron2 INFO: Command line arguments: None
+[09/12 16:15:24] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:24] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:24] d2.utils.env INFO: Using a generated random seed 24628533
+[09/12 16:15:24] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:24] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:24] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:25] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:26] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:26] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:26] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:26] detectron2 INFO: Command line arguments: None
+[09/12 16:15:26] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:26] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:26] d2.utils.env INFO: Using a generated random seed 26965641
+[09/12 16:15:26] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:26] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:26] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:28] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:28] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:29] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:29] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:29] detectron2 INFO: Command line arguments: None
+[09/12 16:15:29] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:29] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:29] d2.utils.env INFO: Using a generated random seed 29304265
+[09/12 16:15:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:29] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:30] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:31] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:31] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:31] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:31] detectron2 INFO: Command line arguments: None
+[09/12 16:15:31] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:31] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:31] d2.utils.env INFO: Using a generated random seed 31624689
+[09/12 16:15:31] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:31] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:31] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:32] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:33] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:33] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:33] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:33] detectron2 INFO: Command line arguments: None
+[09/12 16:15:33] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:33] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:33] d2.utils.env INFO: Using a generated random seed 34001580
+[09/12 16:15:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:33] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:35] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:36] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:36] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:36] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:36] detectron2 INFO: Command line arguments: None
+[09/12 16:15:36] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:36] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:36] d2.utils.env INFO: Using a generated random seed 36608972
+[09/12 16:15:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:36] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:37] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:38] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:38] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:39] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:39] detectron2 INFO: Command line arguments: None
+[09/12 16:15:39] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:39] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:39] d2.utils.env INFO: Using a generated random seed 39176216
+[09/12 16:15:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:39] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:40] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:41] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:41] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:41] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:41] detectron2 INFO: Command line arguments: None
+[09/12 16:15:41] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:41] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:41] d2.utils.env INFO: Using a generated random seed 41711312
+[09/12 16:15:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:41] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:43] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:43] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:43] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:44] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:44] detectron2 INFO: Command line arguments: None
+[09/12 16:15:44] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:44] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:44] d2.utils.env INFO: Using a generated random seed 44137361
+[09/12 16:15:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:44] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:45] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:46] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:46] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:46] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:46] detectron2 INFO: Command line arguments: None
+[09/12 16:15:46] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:46] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:46] d2.utils.env INFO: Using a generated random seed 46489263
+[09/12 16:15:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:46] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:47] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:48] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:48] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:48] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:48] detectron2 INFO: Command line arguments: None
+[09/12 16:15:48] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:48] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:48] d2.utils.env INFO: Using a generated random seed 48863955
+[09/12 16:15:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:48] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:50] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:50] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:50] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:51] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:51] detectron2 INFO: Command line arguments: None
+[09/12 16:15:51] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:51] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:51] d2.utils.env INFO: Using a generated random seed 51256906
+[09/12 16:15:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:51] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:52] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:53] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:53] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:53] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:53] detectron2 INFO: Command line arguments: None
+[09/12 16:15:53] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:53] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:53] d2.utils.env INFO: Using a generated random seed 53574960
+[09/12 16:15:53] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:53] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:53] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:54] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:55] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:55] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:55] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:55] detectron2 INFO: Command line arguments: None
+[09/12 16:15:55] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:55] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:55] d2.utils.env INFO: Using a generated random seed 55945536
+[09/12 16:15:55] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:55] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:55] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:57] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:15:57] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:15:57] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:15:58] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE
+PyTorch 1.7.1 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torch
+PyTorch debug build False
+GPU available True
+GPU 0,1,2,3 Tesla V100-SXM2-32GB (arch=7.0)
+CUDA_HOME /usr/local/cuda-10.2
+Pillow 8.3.2
+torchvision 0.8.2 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/torchvision
+torchvision arch flags 3.5, 5.0, 6.0, 7.0, 7.5
+fvcore 0.1.5.post20210825
+cv2 3.4.1
+---------------------- --------------------------------------------------------------------------
+PyTorch built with:
+ - GCC 7.3
+ - C++ Version: 201402
+ - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
+ - Intel(R) MKL-DNN v1.6.0 (Git Hash 5ef631a030a6f73131c77892041042805a06064f)
+ - OpenMP 201511 (a.k.a. OpenMP 4.5)
+ - NNPACK is enabled
+ - CPU capability usage: AVX2
+ - CUDA Runtime 10.2
+ - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75
+ - CuDNN 7.6.5
+ - Magma 2.5.2
+ - Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
+
+[09/12 16:15:58] detectron2 INFO: Command line arguments: None
+[09/12 16:15:58] detectron2 INFO: Running with full config:
+CUDNN_BENCHMARK: False
+DATALOADER:
+ ASPECT_RATIO_GROUPING: True
+ FILTER_EMPTY_ANNOTATIONS: True
+ NUM_WORKERS: 4
+ REPEAT_THRESHOLD: 0.0
+ SAMPLER_TRAIN: TrainingSampler
+DATASETS:
+ PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000
+ PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000
+ PROPOSAL_FILES_TEST: ()
+ PROPOSAL_FILES_TRAIN: ()
+ TEST: ()
+ TRAIN: ()
+GLOBAL:
+ HACK: 1.0
+INPUT:
+ CROP:
+ ENABLED: False
+ SIZE: [0.9, 0.9]
+ TYPE: relative_range
+ FORMAT: BGR
+ MASK_FORMAT: polygon
+ MAX_SIZE_TEST: 1000
+ MAX_SIZE_TRAIN: 1000
+ MIN_SIZE_TEST: 600
+ MIN_SIZE_TRAIN: (600,)
+ MIN_SIZE_TRAIN_SAMPLING: choice
+ RANDOM_FLIP: horizontal
+MODEL:
+ ANCHOR_GENERATOR:
+ ANGLES: [[-90, 0, 90]]
+ ASPECT_RATIOS: [[0.5, 1.0, 2.0]]
+ NAME: DefaultAnchorGenerator
+ OFFSET: 0.0
+ SIZES: [[4, 8, 16, 32]]
+ BACKBONE:
+ FREEZE_AT: 3
+ NAME: build_bua_resnet_backbone
+ BUA:
+ ATTRIBUTE:
+ NUM_CLASSES: 401
+ ATTRIBUTE_ON: True
+ CAFFE: True
+ EXTRACTOR:
+ CONF_THRESH: 0.4
+ MAX_BOXES: 45
+ MIN_BOXES: 5
+ MODE: 2
+ OUTPUT_DIR: .output/
+ EXTRACT_FEATS: True
+ RESNET_VERSION: 1
+ RPN:
+ CONV_OUT_CHANNELS: 512
+ DEVICE: cuda
+ FPN:
+ FUSE_TYPE: sum
+ IN_FEATURES: []
+ NORM:
+ OUT_CHANNELS: 256
+ KEYPOINT_ON: False
+ LOAD_PROPOSALS: False
+ MASK_ON: False
+ META_ARCHITECTURE: GeneralizedBUARCNN
+ PANOPTIC_FPN:
+ COMBINE:
+ ENABLED: True
+ INSTANCES_CONFIDENCE_THRESH: 0.5
+ OVERLAP_THRESH: 0.5
+ STUFF_AREA_LIMIT: 4096
+ INSTANCE_LOSS_WEIGHT: 1.0
+ PIXEL_MEAN: [102.9801, 115.9465, 122.7717]
+ PIXEL_STD: [1.0, 1.0, 1.0]
+ PROPOSAL_GENERATOR:
+ MIN_SIZE: 16
+ NAME: BUARPN
+ RESNETS:
+ DEFORM_MODULATED: False
+ DEFORM_NUM_GROUPS: 1
+ DEFORM_ON_PER_STAGE: [False, False, False, False]
+ DEPTH: 101
+ NORM: BN
+ NUM_GROUPS: 1
+ OUT_FEATURES: ['res4']
+ RES2_OUT_CHANNELS: 256
+ RES5_DILATION: 2
+ STEM_OUT_CHANNELS: 64
+ STRIDE_IN_1X1: True
+ WIDTH_PER_GROUP: 64
+ RETINANET:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ FOCAL_LOSS_ALPHA: 0.25
+ FOCAL_LOSS_GAMMA: 2.0
+ IN_FEATURES: ['p3', 'p4', 'p5', 'p6', 'p7']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.4, 0.5]
+ NMS_THRESH_TEST: 0.5
+ NORM:
+ NUM_CLASSES: 80
+ NUM_CONVS: 4
+ PRIOR_PROB: 0.01
+ SCORE_THRESH_TEST: 0.05
+ SMOOTH_L1_LOSS_BETA: 0.1
+ TOPK_CANDIDATES_TEST: 1000
+ ROI_BOX_CASCADE_HEAD:
+ BBOX_REG_WEIGHTS: ((10.0, 10.0, 5.0, 5.0), (20.0, 20.0, 10.0, 10.0), (30.0, 30.0, 15.0, 15.0))
+ IOUS: (0.5, 0.6, 0.7)
+ ROI_BOX_HEAD:
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ CLS_AGNOSTIC_BBOX_REG: False
+ CONV_DIM: 256
+ FC_DIM: 1024
+ NAME:
+ NORM:
+ NUM_CONV: 0
+ NUM_FC: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIPool
+ SMOOTH_L1_BETA: 0.0
+ TRAIN_ON_PRED_BOXES: False
+ ROI_HEADS:
+ BATCH_SIZE_PER_IMAGE: 64
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, 1]
+ IOU_THRESHOLDS: [0.5]
+ NAME: BUACaffeRes5ROIHeads
+ NMS_THRESH_TEST: 0.3
+ NUM_CLASSES: 1601
+ POSITIVE_FRACTION: 0.5
+ PROPOSAL_APPEND_GT: True
+ SCORE_THRESH_TEST: -1.0
+ ROI_KEYPOINT_HEAD:
+ CONV_DIMS: (512, 512, 512, 512, 512, 512, 512, 512)
+ LOSS_WEIGHT: 1.0
+ MIN_KEYPOINTS_PER_IMAGE: 1
+ NAME: KRCNNConvDeconvUpsampleHead
+ NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: True
+ NUM_KEYPOINTS: 17
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ ROI_MASK_HEAD:
+ CLS_AGNOSTIC_MASK: False
+ CONV_DIM: 256
+ NAME: MaskRCNNConvUpsampleHead
+ NORM:
+ NUM_CONV: 0
+ POOLER_RESOLUTION: 14
+ POOLER_SAMPLING_RATIO: 0
+ POOLER_TYPE: ROIAlignV2
+ RPN:
+ BATCH_SIZE_PER_IMAGE: 64
+ BBOX_REG_LOSS_TYPE: smooth_l1
+ BBOX_REG_LOSS_WEIGHT: 1.0
+ BBOX_REG_WEIGHTS: (1.0, 1.0, 1.0, 1.0)
+ BOUNDARY_THRESH: -1
+ HEAD_NAME: StandardBUARPNHead
+ IN_FEATURES: ['res4']
+ IOU_LABELS: [0, -1, 1]
+ IOU_THRESHOLDS: [0.3, 0.7]
+ LOSS_WEIGHT: 1.0
+ NMS_THRESH: 0.7
+ POSITIVE_FRACTION: 0.5
+ POST_NMS_TOPK_TEST: 300
+ POST_NMS_TOPK_TRAIN: 2000
+ PRE_NMS_TOPK_TEST: 6000
+ PRE_NMS_TOPK_TRAIN: 12000
+ SMOOTH_L1_BETA: 0.0
+ SEM_SEG_HEAD:
+ COMMON_STRIDE: 4
+ CONVS_DIM: 128
+ IGNORE_VALUE: 255
+ IN_FEATURES: ['p2', 'p3', 'p4', 'p5']
+ LOSS_WEIGHT: 1.0
+ NAME: SemSegFPNHead
+ NORM: GN
+ NUM_CLASSES: 54
+ WEIGHTS: weights/bua-caffe-frcn-r101_with_attributes.pth
+OUTPUT_DIR: ./output
+SEED: -1
+SOLVER:
+ AMP:
+ ENABLED: False
+ BASE_LR: 0.001
+ BIAS_LR_FACTOR: 1.0
+ CHECKPOINT_PERIOD: 5000
+ CLIP_GRADIENTS:
+ CLIP_TYPE: value
+ CLIP_VALUE: 1.0
+ ENABLED: False
+ NORM_TYPE: 2.0
+ GAMMA: 0.1
+ IMS_PER_BATCH: 16
+ LR_SCHEDULER_NAME: WarmupMultiStepLR
+ MAX_ITER: 40000
+ MOMENTUM: 0.9
+ NESTEROV: False
+ REFERENCE_WORLD_SIZE: 0
+ STEPS: (30000,)
+ WARMUP_FACTOR: 0.001
+ WARMUP_ITERS: 1000
+ WARMUP_METHOD: linear
+ WEIGHT_DECAY: 0.0001
+ WEIGHT_DECAY_BIAS: 0.0001
+ WEIGHT_DECAY_NORM: 0.0
+TEST:
+ AUG:
+ ENABLED: False
+ FLIP: True
+ MAX_SIZE: 4000
+ MIN_SIZES: (400, 500, 600, 700, 800, 900, 1000, 1100, 1200)
+ DETECTIONS_PER_IMAGE: 100
+ EVAL_PERIOD: 0
+ EXPECTED_RESULTS: []
+ KEYPOINT_OKS_SIGMAS: []
+ PRECISE_BN:
+ ENABLED: False
+ NUM_ITER: 200
+VERSION: 2
+VIS_PERIOD: 0
+[09/12 16:15:58] detectron2 INFO: Full config saved to ./output/config.yaml
+[09/12 16:15:58] d2.utils.env INFO: Using a generated random seed 58245915
+[09/12 16:15:58] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:58] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:58] d2.modeling.backbone.resnet WARNING: ResNet.make_stage(first_stride=) is deprecated! Use 'stride_per_block' or 'stride' instead.
+[09/12 16:15:59] d2.engine.defaults INFO: Model:
+GeneralizedBUARCNN(
+ (backbone): ResNet(
+ (stem): BUABasicStem(
+ (conv1): Conv2d(
+ 3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ )
+ (res2): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=64, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=256, eps=1e-05)
+ )
+ )
+ )
+ (res3): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ (conv1): Conv2d(
+ 256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv2): Conv2d(
+ 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=128, eps=1e-05)
+ )
+ (conv3): Conv2d(
+ 128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): FrozenBatchNorm2d(num_features=512, eps=1e-05)
+ )
+ )
+ )
+ (res4): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (3): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (4): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (5): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (6): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (7): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (8): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (9): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (10): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (11): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (12): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (13): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (14): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (15): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (16): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (17): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (18): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (19): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (20): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (21): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (22): BottleneckBlock(
+ (conv1): Conv2d(
+ 1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False
+ (norm): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ )
+ (proposal_generator): BUARPN(
+ (anchor_generator): DefaultAnchorGenerator(
+ (cell_anchors): BufferList()
+ )
+ (rpn_head): StandardBUARPNHead(
+ (conv): Conv2d(1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
+ (objectness_logits): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))
+ (anchor_deltas): Conv2d(512, 48, kernel_size=(1, 1), stride=(1, 1))
+ )
+ )
+ (roi_heads): BUACaffeRes5ROIHeads(
+ (pooler): ROIPooler(
+ (level_poolers): ModuleList(
+ (0): RoIPool(output_size=(14, 14), spatial_scale=0.0625)
+ )
+ )
+ (res5): Sequential(
+ (0): BottleneckBlock(
+ (shortcut): Conv2d(
+ 1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv1): Conv2d(
+ 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (1): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ (2): BottleneckBlock(
+ (conv1): Conv2d(
+ 2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv2): Conv2d(
+ 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False
+ (norm): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ (conv3): Conv2d(
+ 512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False
+ (norm): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
+ )
+ )
+ )
+ (box_predictor): BUACaffeFastRCNNOutputLayers(
+ (cls_score): Linear(in_features=2048, out_features=1601, bias=True)
+ (bbox_pred): Linear(in_features=2048, out_features=6404, bias=True)
+ (cls_embed): Embedding(1601, 256)
+ (attr_linear1): Linear(in_features=2304, out_features=512, bias=True)
+ (attr_linear2): Linear(in_features=512, out_features=401, bias=True)
+ )
+ )
+)
+[09/12 16:16:00] d2.config.compat WARNING: Config 'configs/bua-caffe/extract-bua-caffe-r101.yaml' has no VERSION. Assuming it to be compatible with latest v2.
+[09/12 16:16:00] detectron2 INFO: Rank of current process: 0. World size: 1
+[09/12 16:16:00] detectron2 INFO: Environment info:
+---------------------- --------------------------------------------------------------------------
+sys.platform linux
+Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) [GCC 7.2.0]
+numpy 1.19.5
+detectron2 0.3 @/data/home/sxhong/anaconda3/lib/python3.6/site-packages/detectron2
+Compiler GCC 7.3
+CUDA compiler CUDA 10.2
+detectron2 arch flags 3.7, 5.0, 5.2, 6.0, 6.1, 7.0, 7.5
+DETECTRON2_ENV_MODULE