Feng Wang
commited on
Commit
·
ad34180
1
Parent(s):
21e3f5a
feat(YOLOX): add header
Browse files- yolox/core/__init__.py +1 -0
- yolox/core/launch.py +0 -1
- yolox/core/trainer.py +4 -0
- yolox/data/__init__.py +1 -0
- yolox/data/data_augment.py +3 -0
- yolox/data/data_prefetcher.py +1 -0
- yolox/data/dataloading.py +4 -0
- yolox/data/datasets/__init__.py +1 -0
- yolox/data/datasets/coco.py +4 -0
- yolox/data/datasets/coco_classes.py +1 -1
- yolox/data/datasets/datasets_wrapper.py +2 -0
- yolox/data/datasets/mosaicdetection.py +4 -0
- yolox/data/datasets/voc.py +7 -7
- yolox/data/datasets/voc_classes.py +1 -1
- yolox/data/samplers.py +1 -0
- yolox/evalutors/__init__.py +1 -0
- yolox/evalutors/coco_evaluator.py +5 -1
- yolox/evalutors/voc_eval.py +6 -5
- yolox/evalutors/voc_evaluator.py +5 -3
- yolox/exp/__init__.py +1 -1
- yolox/exp/base_exp.py +1 -0
- yolox/exp/build.py +1 -0
- yolox/layers/__init__.py +1 -0
- yolox/layers/fast_coco_eval_api.py +1 -0
- yolox/models/__init__.py +1 -0
- yolox/models/darknet.py +1 -0
- yolox/models/losses.py +4 -0
- yolox/models/network_blocks.py +10 -5
- yolox/models/yolo_fpn.py +4 -0
- yolox/models/yolo_head.py +1 -0
- yolox/models/yolo_pafpn.py +4 -0
- yolox/models/yolox.py +3 -0
- yolox/utils/__init__.py +1 -0
- yolox/utils/allreduce_norm.py +1 -0
- yolox/utils/boxes.py +4 -0
- yolox/utils/checkpoint.py +1 -0
- yolox/utils/dist.py +3 -2
- yolox/utils/ema.py +3 -0
- yolox/utils/logger.py +4 -0
- yolox/utils/lr_scheduler.py +12 -4
- yolox/utils/model_utils.py +2 -0
- yolox/utils/visualize.py +3 -1
yolox/core/__init__.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
3 |
|
4 |
from .launch import launch
|
5 |
from .trainer import Trainer
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
|
5 |
from .launch import launch
|
6 |
from .trainer import Trainer
|
yolox/core/launch.py
CHANGED
@@ -5,7 +5,6 @@
|
|
5 |
# Copyright (c) Facebook, Inc. and its affiliates.
|
6 |
# Copyright (c) Megvii, Inc. and its affiliates.
|
7 |
|
8 |
-
|
9 |
from loguru import logger
|
10 |
|
11 |
import torch
|
|
|
5 |
# Copyright (c) Facebook, Inc. and its affiliates.
|
6 |
# Copyright (c) Megvii, Inc. and its affiliates.
|
7 |
|
|
|
8 |
from loguru import logger
|
9 |
|
10 |
import torch
|
yolox/core/trainer.py
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
import datetime
|
2 |
import os
|
3 |
import time
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
+
|
5 |
import datetime
|
6 |
import os
|
7 |
import time
|
yolox/data/__init__.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
3 |
|
4 |
from .data_augment import TrainTransform, ValTransform
|
5 |
from .data_prefetcher import DataPrefetcher
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
|
5 |
from .data_augment import TrainTransform, ValTransform
|
6 |
from .data_prefetcher import DataPrefetcher
|
yolox/data/data_augment.py
CHANGED
@@ -1,3 +1,6 @@
|
|
|
|
|
|
|
|
1 |
"""
|
2 |
Data augmentation functionality. Passed as callable transformations to
|
3 |
Dataset classes.
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
"""
|
5 |
Data augmentation functionality. Passed as callable transformations to
|
6 |
Dataset classes.
|
yolox/data/data_prefetcher.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
3 |
|
4 |
import random
|
5 |
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
|
5 |
import random
|
6 |
|
yolox/data/dataloading.py
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
import os
|
2 |
import random
|
3 |
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
+
|
5 |
import os
|
6 |
import random
|
7 |
|
yolox/data/datasets/__init__.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
3 |
|
4 |
from .coco import COCODataset
|
5 |
from .coco_classes import COCO_CLASSES
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
|
5 |
from .coco import COCODataset
|
6 |
from .coco_classes import COCO_CLASSES
|
yolox/data/datasets/coco.py
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
import os
|
2 |
|
3 |
import cv2
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
+
|
5 |
import os
|
6 |
|
7 |
import cv2
|
yolox/data/datasets/coco_classes.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
-
|
4 |
|
5 |
COCO_CLASSES = (
|
6 |
"person",
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
|
5 |
COCO_CLASSES = (
|
6 |
"person",
|
yolox/data/datasets/datasets_wrapper.py
CHANGED
@@ -1,5 +1,7 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
|
|
3 |
import bisect
|
4 |
from functools import wraps
|
5 |
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
+
|
5 |
import bisect
|
6 |
from functools import wraps
|
7 |
|
yolox/data/datasets/mosaicdetection.py
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
import random
|
2 |
|
3 |
import cv2
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
+
|
5 |
import random
|
6 |
|
7 |
import cv2
|
yolox/data/datasets/voc.py
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
https://github.com/fmassa/vision/blob/voc_dataset/torchvision/datasets/voc.py
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
|
9 |
import os
|
10 |
import os.path
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Code are based on
|
4 |
+
# https://github.com/fmassa/vision/blob/voc_dataset/torchvision/datasets/voc.py
|
5 |
+
# Copyright (c) Francisco Massa.
|
6 |
+
# Copyright (c) Ellis Brown, Max deGroot.
|
7 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
8 |
|
9 |
import os
|
10 |
import os.path
|
yolox/data/datasets/voc_classes.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
-
|
4 |
|
5 |
# VOC_CLASSES = ( '__background__', # always index 0
|
6 |
VOC_CLASSES = (
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
|
5 |
# VOC_CLASSES = ( '__background__', # always index 0
|
6 |
VOC_CLASSES = (
|
yolox/data/samplers.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
3 |
|
4 |
import itertools
|
5 |
from typing import Optional
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
|
5 |
import itertools
|
6 |
from typing import Optional
|
yolox/evalutors/__init__.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
3 |
|
4 |
from .coco_evaluator import COCOEvaluator
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
|
5 |
from .coco_evaluator import COCOEvaluator
|
yolox/evalutors/coco_evaluator.py
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
import contextlib
|
2 |
import io
|
3 |
import itertools
|
@@ -87,7 +91,7 @@ class COCOEvaluator:
|
|
87 |
model_trt.load_state_dict(torch.load(trt_file))
|
88 |
|
89 |
x = torch.ones(1, 3, test_size[0], test_size[1]).cuda()
|
90 |
-
|
91 |
model = model_trt
|
92 |
|
93 |
for cur_iter, (imgs, _, info_imgs, ids) in enumerate(
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
+
|
5 |
import contextlib
|
6 |
import io
|
7 |
import itertools
|
|
|
91 |
model_trt.load_state_dict(torch.load(trt_file))
|
92 |
|
93 |
x = torch.ones(1, 3, test_size[0], test_size[1]).cuda()
|
94 |
+
model(x)
|
95 |
model = model_trt
|
96 |
|
97 |
for cur_iter, (imgs, _, info_imgs, ids) in enumerate(
|
yolox/evalutors/voc_eval.py
CHANGED
@@ -1,8 +1,9 @@
|
|
1 |
-
|
2 |
-
#
|
3 |
-
#
|
4 |
-
#
|
5 |
-
#
|
|
|
6 |
|
7 |
import os
|
8 |
import pickle
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Code are based on
|
4 |
+
# https://github.com/rbgirshick/py-faster-rcnn/blob/master/lib/datasets/voc_eval.py
|
5 |
+
# Copyright (c) Bharath Hariharan.
|
6 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
7 |
|
8 |
import os
|
9 |
import pickle
|
yolox/evalutors/voc_evaluator.py
CHANGED
@@ -1,3 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
1 |
import sys
|
2 |
import tempfile
|
3 |
import time
|
@@ -5,12 +10,9 @@ from tqdm import tqdm
|
|
5 |
|
6 |
import torch
|
7 |
|
8 |
-
# TODO check VOC
|
9 |
from yolox.data.dataset.vocdataset import ValTransform
|
10 |
from yolox.utils import get_rank, is_main_process, make_pred_vis, make_vis, synchronize
|
11 |
|
12 |
-
# TODO refactor this file in the future.
|
13 |
-
|
14 |
|
15 |
def _accumulate_predictions_from_multiple_gpus(predictions_per_gpu):
|
16 |
all_predictions = dist.scatter_gather(predictions_per_gpu)
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) Megvii, Inc. and its affiliates.
|
4 |
+
|
5 |
+
# NOTE: this file is not finished.
|
6 |
import sys
|
7 |
import tempfile
|
8 |
import time
|
|
|
10 |
|
11 |
import torch
|
12 |
|
|
|
13 |
from yolox.data.dataset.vocdataset import ValTransform
|
14 |
from yolox.utils import get_rank, is_main_process, make_pred_vis, make_vis, synchronize
|
15 |
|
|
|
|
|
16 |
|
17 |
def _accumulate_predictions_from_multiple_gpus(predictions_per_gpu):
|
18 |
all_predictions = dist.scatter_gather(predictions_per_gpu)
|
yolox/exp/__init__.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
-
|
4 |
|
5 |
from .base_exp import BaseExp
|
6 |
from .build import get_exp
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
|
5 |
from .base_exp import BaseExp
|
6 |
from .build import get_exp
|
yolox/exp/base_exp.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
|
|
4 |
import ast
|
5 |
import pprint
|
6 |
from abc import ABCMeta, abstractmethod
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
+
|
5 |
import ast
|
6 |
import pprint
|
7 |
from abc import ABCMeta, abstractmethod
|
yolox/exp/build.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
3 |
|
4 |
import importlib
|
5 |
import os
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
|
5 |
import importlib
|
6 |
import os
|
yolox/layers/__init__.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
3 |
|
4 |
from .fast_coco_eval_api import COCOeval_opt
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
|
5 |
from .fast_coco_eval_api import COCOeval_opt
|
yolox/layers/fast_coco_eval_api.py
CHANGED
@@ -3,6 +3,7 @@
|
|
3 |
# This file comes from
|
4 |
# https://github.com/facebookresearch/detectron2/blob/master/detectron2/evaluation/fast_eval_api.py
|
5 |
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
|
|
|
6 |
|
7 |
import copy
|
8 |
import time
|
|
|
3 |
# This file comes from
|
4 |
# https://github.com/facebookresearch/detectron2/blob/master/detectron2/evaluation/fast_eval_api.py
|
5 |
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
|
6 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
7 |
|
8 |
import copy
|
9 |
import time
|
yolox/models/__init__.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
3 |
|
4 |
from .darknet import CSPDarknet, Darknet
|
5 |
from .losses import IOUloss
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
|
5 |
from .darknet import CSPDarknet, Darknet
|
6 |
from .losses import IOUloss
|
yolox/models/darknet.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
#!/usr/bin/env python
|
2 |
# -*- encoding: utf-8 -*-
|
|
|
3 |
|
4 |
from torch import nn
|
5 |
|
|
|
1 |
#!/usr/bin/env python
|
2 |
# -*- encoding: utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
|
5 |
from torch import nn
|
6 |
|
yolox/models/losses.py
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
import torch
|
2 |
import torch.nn as nn
|
3 |
|
|
|
1 |
+
#!/usr/bin/env python
|
2 |
+
# -*- encoding: utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
+
|
5 |
import torch
|
6 |
import torch.nn as nn
|
7 |
|
yolox/models/network_blocks.py
CHANGED
@@ -1,9 +1,13 @@
|
|
|
|
|
|
|
|
|
|
1 |
import torch
|
2 |
import torch.nn as nn
|
3 |
|
4 |
|
5 |
class SiLU(nn.Module):
|
6 |
-
|
7 |
|
8 |
@staticmethod
|
9 |
def forward(x):
|
@@ -23,9 +27,7 @@ def get_activation(name="silu", inplace=True):
|
|
23 |
|
24 |
|
25 |
class BaseConv(nn.Module):
|
26 |
-
"""
|
27 |
-
A Conv2d -> Batchnorm -> silu/leaky relu block
|
28 |
-
"""
|
29 |
|
30 |
def __init__(self, in_channels, out_channels, ksize, stride, groups=1, bias=False, act="silu"):
|
31 |
super().__init__()
|
@@ -99,7 +101,7 @@ class ResLayer(nn.Module):
|
|
99 |
|
100 |
|
101 |
class SPPBottleneck(nn.Module):
|
102 |
-
|
103 |
def __init__(self, in_channels, out_channels, kernel_sizes=(5, 9, 13), activation="silu"):
|
104 |
super().__init__()
|
105 |
hidden_channels = in_channels // 2
|
@@ -126,6 +128,8 @@ class CSPLayer(nn.Module):
|
|
126 |
):
|
127 |
"""
|
128 |
Args:
|
|
|
|
|
129 |
n (int): number of Bottlenecks. Default value: 1.
|
130 |
"""
|
131 |
# ch_in, ch_out, number, shortcut, groups, expansion
|
@@ -150,6 +154,7 @@ class CSPLayer(nn.Module):
|
|
150 |
|
151 |
class Focus(nn.Module):
|
152 |
"""Focus width and height information into channel space."""
|
|
|
153 |
def __init__(self, in_channels, out_channels, ksize=1, stride=1):
|
154 |
super().__init__()
|
155 |
self.conv = BaseConv(in_channels * 4, out_channels, ksize, stride)
|
|
|
1 |
+
#!/usr/bin/env python
|
2 |
+
# -*- encoding: utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
+
|
5 |
import torch
|
6 |
import torch.nn as nn
|
7 |
|
8 |
|
9 |
class SiLU(nn.Module):
|
10 |
+
"""export-friendly version of nn.SiLU()"""
|
11 |
|
12 |
@staticmethod
|
13 |
def forward(x):
|
|
|
27 |
|
28 |
|
29 |
class BaseConv(nn.Module):
|
30 |
+
"""A Conv2d -> Batchnorm -> silu/leaky relu block"""
|
|
|
|
|
31 |
|
32 |
def __init__(self, in_channels, out_channels, ksize, stride, groups=1, bias=False, act="silu"):
|
33 |
super().__init__()
|
|
|
101 |
|
102 |
|
103 |
class SPPBottleneck(nn.Module):
|
104 |
+
"""Spatial pyramid pooling layer used in YOLOv3-SPP"""
|
105 |
def __init__(self, in_channels, out_channels, kernel_sizes=(5, 9, 13), activation="silu"):
|
106 |
super().__init__()
|
107 |
hidden_channels = in_channels // 2
|
|
|
128 |
):
|
129 |
"""
|
130 |
Args:
|
131 |
+
in_channels (int): input channels.
|
132 |
+
out_channels (int): output channels.
|
133 |
n (int): number of Bottlenecks. Default value: 1.
|
134 |
"""
|
135 |
# ch_in, ch_out, number, shortcut, groups, expansion
|
|
|
154 |
|
155 |
class Focus(nn.Module):
|
156 |
"""Focus width and height information into channel space."""
|
157 |
+
|
158 |
def __init__(self, in_channels, out_channels, ksize=1, stride=1):
|
159 |
super().__init__()
|
160 |
self.conv = BaseConv(in_channels * 4, out_channels, ksize, stride)
|
yolox/models/yolo_fpn.py
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
import torch
|
2 |
import torch.nn as nn
|
3 |
|
|
|
1 |
+
#!/usr/bin/env python
|
2 |
+
# -*- encoding: utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
+
|
5 |
import torch
|
6 |
import torch.nn as nn
|
7 |
|
yolox/models/yolo_head.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
3 |
|
4 |
import math
|
5 |
from loguru import logger
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
|
5 |
import math
|
6 |
from loguru import logger
|
yolox/models/yolo_pafpn.py
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
import torch
|
2 |
import torch.nn as nn
|
3 |
|
|
|
1 |
+
#!/usr/bin/env python
|
2 |
+
# -*- encoding: utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
+
|
5 |
import torch
|
6 |
import torch.nn as nn
|
7 |
|
yolox/models/yolox.py
CHANGED
@@ -1,3 +1,6 @@
|
|
|
|
|
|
|
|
1 |
|
2 |
import torch.nn as nn
|
3 |
|
|
|
1 |
+
#!/usr/bin/env python
|
2 |
+
# -*- encoding: utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
|
5 |
import torch.nn as nn
|
6 |
|
yolox/utils/__init__.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
3 |
|
4 |
from .allreduce_norm import *
|
5 |
from .boxes import *
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
|
5 |
from .allreduce_norm import *
|
6 |
from .boxes import *
|
yolox/utils/allreduce_norm.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
3 |
|
4 |
import pickle
|
5 |
from collections import OrderedDict
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
|
5 |
import pickle
|
6 |
from collections import OrderedDict
|
yolox/utils/boxes.py
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
import numpy as np
|
2 |
|
3 |
import torch
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
+
|
5 |
import numpy as np
|
6 |
|
7 |
import torch
|
yolox/utils/checkpoint.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
3 |
import os
|
4 |
import shutil
|
5 |
from loguru import logger
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
import os
|
5 |
import shutil
|
6 |
from loguru import logger
|
yolox/utils/dist.py
CHANGED
@@ -1,8 +1,9 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
-
# This file comes from
|
4 |
# https://github.com/facebookresearch/detectron2/blob/master/detectron2/utils/comm.py
|
5 |
# Copyright (c) Facebook, Inc. and its affiliates.
|
|
|
6 |
"""
|
7 |
This file contains primitives for multi-gpu communication.
|
8 |
This is useful when doing distributed training.
|
@@ -248,7 +249,7 @@ def shared_random_seed():
|
|
248 |
|
249 |
|
250 |
def time_synchronized():
|
251 |
-
|
252 |
if torch.cuda.is_available():
|
253 |
torch.cuda.synchronize()
|
254 |
return time.time()
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# This file mainly comes from
|
4 |
# https://github.com/facebookresearch/detectron2/blob/master/detectron2/utils/comm.py
|
5 |
# Copyright (c) Facebook, Inc. and its affiliates.
|
6 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
7 |
"""
|
8 |
This file contains primitives for multi-gpu communication.
|
9 |
This is useful when doing distributed training.
|
|
|
249 |
|
250 |
|
251 |
def time_synchronized():
|
252 |
+
"""pytorch-accurate time"""
|
253 |
if torch.cuda.is_available():
|
254 |
torch.cuda.synchronize()
|
255 |
return time.time()
|
yolox/utils/ema.py
CHANGED
@@ -1,3 +1,6 @@
|
|
|
|
|
|
|
|
1 |
import math
|
2 |
from copy import deepcopy
|
3 |
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
import math
|
5 |
from copy import deepcopy
|
6 |
|
yolox/utils/logger.py
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
import inspect
|
2 |
import os
|
3 |
import sys
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
+
|
5 |
import inspect
|
6 |
import os
|
7 |
import sys
|
yolox/utils/lr_scheduler.py
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
import math
|
2 |
from functools import partial
|
3 |
|
@@ -7,10 +11,14 @@ class LRScheduler:
|
|
7 |
"""
|
8 |
Supported lr schedulers: [cos, warmcos, multistep]
|
9 |
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
|
|
|
|
|
|
|
|
14 |
"""
|
15 |
|
16 |
self.lr = lr
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
+
|
5 |
import math
|
6 |
from functools import partial
|
7 |
|
|
|
11 |
"""
|
12 |
Supported lr schedulers: [cos, warmcos, multistep]
|
13 |
|
14 |
+
Args:
|
15 |
+
lr (float): learning rate.
|
16 |
+
iters_per_peoch (int): number of iterations in one epoch.
|
17 |
+
total_epochs (int): number of epochs in training.
|
18 |
+
kwargs (dict):
|
19 |
+
- cos: None
|
20 |
+
- warmcos: [warmup_epochs, warmup_lr_start (default 1e-6)]
|
21 |
+
- multistep: [milestones (epochs), gamma (default 0.1)]
|
22 |
"""
|
23 |
|
24 |
self.lr = lr
|
yolox/utils/model_utils.py
CHANGED
@@ -1,5 +1,7 @@
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
|
|
|
|
3 |
from copy import deepcopy
|
4 |
|
5 |
import torch
|
|
|
1 |
#!/usr/bin/env python3
|
2 |
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
+
|
5 |
from copy import deepcopy
|
6 |
|
7 |
import torch
|
yolox/utils/visualize.py
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
-
|
|
|
|
|
2 |
|
3 |
import cv2
|
4 |
import numpy as np
|
|
|
1 |
+
#!/usr/bin/env python3
|
2 |
+
# -*- coding:utf-8 -*-
|
3 |
+
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
|
4 |
|
5 |
import cv2
|
6 |
import numpy as np
|