File size: 2,107 Bytes
1197f7d 856cce6 1197f7d cbbfcfe 1197f7d cbbfcfe 1197f7d 16c6705 1197f7d 3e08dd8 1197f7d cbbfcfe 77743d7 c9338ee 77743d7 1197f7d 6e85a96 1197f7d 77743d7 1197f7d 16c6705 1197f7d 16c6705 1197f7d 856cce6 5727efb 856cce6 1197f7d 6e85a96 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
from dataclasses import dataclass
from typing import Dict, List, Union
from torch import nn
@dataclass
class AnchorConfig:
reg_max: int
strides: List[int]
@dataclass
class Model:
anchor: AnchorConfig
model: Dict[str, List[Dict[str, Union[Dict, List, int]]]]
@dataclass
class Download:
auto: bool
path: str
@dataclass
class DataLoaderConfig:
batch_size: int
class_num: int
image_size: List[int]
shuffle: bool
pin_memory: bool
@dataclass
class OptimizerArgs:
lr: float
weight_decay: float
@dataclass
class OptimizerConfig:
type: str
args: OptimizerArgs
@dataclass
class SchedulerArgs:
step_size: int
gamma: float
@dataclass
class SchedulerConfig:
type: str
args: SchedulerArgs
warmup: Dict[str, Union[str, int, float]]
@dataclass
class EMAConfig:
enabled: bool
decay: float
@dataclass
class MatcherConfig:
iou: str
topk: int
factor: Dict[str, int]
@dataclass
class LossConfig:
objective: List[List]
aux: Union[bool, float]
matcher: MatcherConfig
@dataclass
class TrainConfig:
epoch: int
optimizer: OptimizerConfig
scheduler: SchedulerConfig
ema: EMAConfig
loss: LossConfig
@dataclass
class GeneralConfig:
out_path: str
task: str
device: Union[str, int, List[int]]
cpu_num: int
use_wandb: bool
lucky_number: 10
exist_ok: bool
resume_train: bool
use_TensorBoard: bool
@dataclass
class HyperConfig:
general: GeneralConfig
data: DataLoaderConfig
train: TrainConfig
@dataclass
class Dataset:
file_name: str
num_files: int
@dataclass
class Datasets:
base_url: str
images: Dict[str, Dataset]
@dataclass
class Download:
auto: bool
save_path: str
datasets: Datasets
@dataclass
class YOLOLayer(nn.Module):
source: Union[int, str, List[int]]
output: bool
tags: str
layer_type: str
usable: bool
def __post_init__(self):
super().__init__()
@dataclass
class Config:
model: Model
download: Download
hyper: HyperConfig
name: str
|