Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move yolox to object_detection module #167

Merged
merged 2 commits into from
Nov 5, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions docs/docs/api-reference/models-megadetector_lite_yolox.md

This file was deleted.

3 changes: 0 additions & 3 deletions docs/docs/api-reference/models-yolox_models.md

This file was deleted.

3 changes: 3 additions & 0 deletions docs/docs/api-reference/object_detection-yolox.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# zamba.object_detection.yolox

::: zamba.object_detection.yolox
5 changes: 4 additions & 1 deletion docs/docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
[![codecov](https://codecov.io/gh/drivendataorg/zamba/branch/master/graph/badge.svg)](https://codecov.io/gh/drivendataorg/zamba)
<!-- [![PyPI](https://img.shields.io/pypi/v/zamba.svg)](https://pypi.org/project/zamba/) -->

<div class="embed-responsive embed-responsive-16by9" width=500> <iframe width=600 height=340 class="embed-responsive-item" src="https://s3.amazonaws.com/drivendata-public-assets/monkey-vid.mp4" frameborder="0" allowfullscreen=""></iframe></div>

<div class="embed-responsive embed-responsive-16by9" width=500>
<iframe width=600 height=340 class="embed-responsive-item" src="https://s3.amazonaws.com/drivendata-public-assets/monkey-vid.mp4"
frameborder="0" allowfullscreen=""></iframe></div>

> *Zamba* means "forest" in Lingala, a Bantu language spoken throughout the Democratic Republic of the Congo and the Republic of the Congo.

Expand Down
4 changes: 2 additions & 2 deletions docs/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ nav:
- zamba.models.densepose.config: "api-reference/densepose_config.md"
- zamba.models.densepose.densepose_manager: "api-reference/densepose_manager.md"
- zamba.models.efficientnet_models: "api-reference/models-efficientnet_models.md"
- zamba.models.megadetector_lite_yolox: "api-reference/models-megadetector_lite_yolox.md"
- zamba.models.model_manager: "api-reference/models-model_manager.md"
- zamba.models.slowfast_models: "api-reference/models-slowfast_models.md"
- zamba.models.utils: "api-reference/models-utils.md"
- zamba.models.yolox_models: "api-reference/models-yolox_models.md"
- zamba.object_detection:
ejm714 marked this conversation as resolved.
Show resolved Hide resolved
- zamba.object_detection.yolox: "api-reference/object_detection-yolox.md"
- zamba.pytorch:
- zamba.pytorch.dataloaders: "api-reference/pytorch-dataloaders.md"
- zamba.pytorch.finetuning: "api-reference/pytorch-finetuning.md"
Expand Down
8 changes: 3 additions & 5 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,11 @@

from zamba.data.video import VideoLoaderConfig
from zamba.models.config import PredictConfig, TrainConfig
from zamba.models.megadetector_lite_yolox import MegadetectorLiteYoloX
from zamba.models.model_manager import MODEL_MAPPING, train_model
from zamba.models.registry import register_model
from zamba.object_detection.yolox.megadetector_lite_yolox import MegadetectorLiteYoloX
from zamba.pytorch.transforms import zamba_image_model_transforms
from zamba.pytorch_lightning.utils import (
register_model,
ZambaVideoClassificationLightningModule,
)
from zamba.pytorch_lightning.utils import ZambaVideoClassificationLightningModule


ASSETS_DIR = Path(__file__).parent / "assets"
Expand Down
2 changes: 1 addition & 1 deletion tests/test_filter_frames.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import numpy as np
import pytest

from zamba.models.megadetector_lite_yolox import MegadetectorLiteYoloXConfig
from zamba.object_detection.yolox.megadetector_lite_yolox import MegadetectorLiteYoloXConfig

n_frames = 100
rng = np.random.RandomState(68891)
Expand Down
4 changes: 2 additions & 2 deletions tests/test_megadetector_lite_yolox.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import pytest
import torch

from zamba.models.yolox_models import YoloXNano
from zamba.models.megadetector_lite_yolox import (
from zamba.object_detection import YoloXNano
from zamba.object_detection.yolox.megadetector_lite_yolox import (
MegadetectorLiteYoloX,
MegadetectorLiteYoloXConfig,
)
Expand Down
2 changes: 0 additions & 2 deletions zamba/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

from loguru import logger

from zamba.models.efficientnet_models import TimeDistributedEfficientNet # noqa: F401
from zamba.models.slowfast_models import SlowFast # noqa: F401
from zamba.version import __version__

__version__
Expand Down
2 changes: 1 addition & 1 deletion zamba/data/video.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from pydantic import BaseModel, root_validator, validator

from zamba.exceptions import ZambaFfmpegException
from zamba.models.megadetector_lite_yolox import (
from zamba.object_detection.yolox.megadetector_lite_yolox import (
MegadetectorLiteYoloX,
MegadetectorLiteYoloXConfig,
)
Expand Down
2 changes: 2 additions & 0 deletions zamba/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from zamba.models.efficientnet_models import TimeDistributedEfficientNet # noqa: F401
from zamba.models.slowfast_models import SlowFast # noqa: F401
6 changes: 2 additions & 4 deletions zamba/models/efficientnet_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,9 @@
import torch
from torch import nn

from zamba.models.registry import register_model
from zamba.pytorch.layers import TimeDistributed
from zamba.pytorch_lightning.utils import (
register_model,
ZambaVideoClassificationLightningModule,
)
from zamba.pytorch_lightning.utils import ZambaVideoClassificationLightningModule


@register_model
Expand Down
7 changes: 2 additions & 5 deletions zamba/models/model_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,10 @@
PredictConfig,
RegionEnum,
)
from zamba.models.registry import available_models
from zamba.models.utils import download_weights
from zamba.pytorch.finetuning import BackboneFinetuning
from zamba.pytorch_lightning.utils import (
available_models,
ZambaDataModule,
ZambaVideoClassificationLightningModule,
)
from zamba.pytorch_lightning.utils import ZambaDataModule, ZambaVideoClassificationLightningModule


def instantiate_model(
Expand Down
15 changes: 15 additions & 0 deletions zamba/models/registry.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from zamba.pytorch_lightning.utils import ZambaVideoClassificationLightningModule

available_models = {}


def register_model(cls):
"""Used to decorate subclasses of ZambaVideoClassificationLightningModule so that they are
included in available_models."""
if not issubclass(cls, ZambaVideoClassificationLightningModule):
raise TypeError(
"Cannot register object that is not a subclass of "
"ZambaVideoClassificationLightningModule."
)
available_models[cls.__name__] = cls
return cls
6 changes: 2 additions & 4 deletions zamba/models/slowfast_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@
from pytorchvideo.models.head import ResNetBasicHead
import torch

from zamba.models.registry import register_model
from zamba.pytorch.utils import build_multilayer_perceptron
from zamba.pytorch_lightning.utils import (
register_model,
ZambaVideoClassificationLightningModule,
)
from zamba.pytorch_lightning.utils import ZambaVideoClassificationLightningModule


@register_model
Expand Down
4 changes: 0 additions & 4 deletions zamba/models/yolox_models/__init__.py

This file was deleted.

4 changes: 4 additions & 0 deletions zamba/object_detection/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from zamba.object_detection.yolox.yolox_base import YoloXBase
from zamba.object_detection.yolox.yolox_nano import YoloXNano

__all__ = ["YoloXBase", "YoloXNano"]
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
from tqdm import tqdm
from yolox.utils.boxes import postprocess

from zamba.models.yolox_models import YoloXNano
from zamba.object_detection import YoloXNano

LOCAL_MD_LITE_MODEL = Path(__file__).parent / "yolox_models" / "assets" / "yolox_nano_20210901.pth"
LOCAL_MD_LITE_MODEL = Path(__file__).parent / "assets" / "yolox_nano_20210901.pth"


class FillModeEnum(str, Enum):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from pathlib import Path
import torch
from zamba.models.yolox_models.yolox_base import YoloXBase
from zamba.object_detection.yolox.yolox_base import YoloXBase


class YoloXNano(YoloXBase):
Expand Down
15 changes: 0 additions & 15 deletions zamba/pytorch_lightning/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,6 @@
from zamba.pytorch.transforms import ConvertTHWCtoCTHW


available_models = {}


def register_model(cls):
"""Used to decorate subclasses of ZambaVideoClassificationLightningModule so that they are
included in available_models."""
if not issubclass(cls, ZambaVideoClassificationLightningModule):
raise TypeError(
"Cannot register object that is not a subclass of "
"ZambaVideoClassificationLightningModule."
)
available_models[cls.__name__] = cls
return cls


default_transform = transforms.Compose(
[
ConvertTHWCtoCTHW(),
Expand Down