from dataclasses import dataclass | |
from typing import Dict, List, Union | |
from torch import nn | |
class AnchorConfig: | |
reg_max: int | |
strides: List[int] | |
class Model: | |
anchor: AnchorConfig | |
model: Dict[str, List[Dict[str, Union[Dict, List, int]]]] | |
class Download: | |
auto: bool | |
path: str | |
class DataLoaderConfig: | |
batch_size: int | |
class_num: int | |
image_size: List[int] | |
shuffle: bool | |
pin_memory: bool | |
class OptimizerArgs: | |
lr: float | |
weight_decay: float | |
class OptimizerConfig: | |
type: str | |
args: OptimizerArgs | |
class SchedulerArgs: | |
step_size: int | |
gamma: float | |
class SchedulerConfig: | |
type: str | |
args: SchedulerArgs | |
warmup: Dict[str, Union[str, int, float]] | |
class EMAConfig: | |
enabled: bool | |
decay: float | |
class MatcherConfig: | |
iou: str | |
topk: int | |
factor: Dict[str, int] | |
class LossConfig: | |
objective: List[List] | |
aux: Union[bool, float] | |
matcher: MatcherConfig | |
class TrainConfig: | |
epoch: int | |
optimizer: OptimizerConfig | |
scheduler: SchedulerConfig | |
ema: EMAConfig | |
loss: LossConfig | |
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 | |
class HyperConfig: | |
general: GeneralConfig | |
data: DataLoaderConfig | |
train: TrainConfig | |
class Dataset: | |
file_name: str | |
num_files: int | |
class Datasets: | |
base_url: str | |
images: Dict[str, Dataset] | |
class Download: | |
auto: bool | |
save_path: str | |
datasets: Datasets | |
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__() | |
class Config: | |
model: Model | |
download: Download | |
hyper: HyperConfig | |
name: str | |