Skip to content
Open
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
17 changes: 17 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Lint

on:
push:
branches: [main]
pull_request:

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
- run: uv python install 3.10
- run: uv pip install ruff
- run: uv run ruff check .
- run: uv run ruff format --check .
7 changes: 7 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.12.2
hooks:
- id: ruff
args: [--fix]
- id: ruff-format
2 changes: 1 addition & 1 deletion baselines/da_v2.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Reference: https://github.com/DepthAnything/Depth-Anything-V2
import os
import sys
from typing import *
from pathlib import Path
from typing import *

import click
import torch
Expand Down
3 changes: 1 addition & 2 deletions baselines/da_v2_metric.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
# Reference https://github.com/DepthAnything/Depth-Anything-V2/metric_depth
import os
import sys
from typing import *
from pathlib import Path
from typing import *

import click
import torch
import torch.nn.functional as F
import torchvision.transforms as T
import torchvision.transforms.functional as TF
import cv2

from moge.test.baseline import MGEBaselineInterface

Expand Down
4 changes: 1 addition & 3 deletions baselines/metric3d_v2.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
# Reference: https://github.com/YvanYin/Metric3D
import os
import sys
from typing import *

import click
import cv2
import torch
import torch.nn.functional as F
import cv2

from moge.test.baseline import MGEBaselineInterface

Expand Down
3 changes: 0 additions & 3 deletions baselines/moge.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import os
import sys
from typing import *
import importlib

import click
import torch
Expand Down
1 change: 0 additions & 1 deletion moge/model/dinov2/hub/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import torch.nn as nn
import torch.nn.functional as F


_DINOV2_BASE_URL = "https://dl.fbaipublicfiles.com/dinov2"


Expand Down
4 changes: 2 additions & 2 deletions moge/model/dinov2/layers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
# This source code is licensed under the Apache License, Version 2.0
# found in the LICENSE file in the root directory of this source tree.

from .attention import MemEffAttention
from .block import NestedTensorBlock
from .dino_head import DINOHead
from .mlp import Mlp
from .patch_embed import PatchEmbed
from .swiglu_ffn import SwiGLUFFN, SwiGLUFFNFused
from .block import NestedTensorBlock
from .attention import MemEffAttention
5 changes: 1 addition & 4 deletions moge/model/dinov2/layers/attention.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,9 @@

import logging
import os
import warnings

import torch.nn.functional as F
from torch import Tensor
from torch import nn

from torch import Tensor, nn

logger = logging.getLogger("dinov2")

Expand Down
8 changes: 3 additions & 5 deletions moge/model/dinov2/layers/block.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,23 @@

import logging
import os
from typing import Callable, List, Any, Tuple, Dict
import warnings
from typing import Any, Callable, Dict, List, Tuple

import torch
from torch import nn, Tensor
from torch import Tensor, nn

from .attention import Attention, MemEffAttention
from .drop_path import DropPath
from .layer_scale import LayerScale
from .mlp import Mlp


logger = logging.getLogger("dinov2")


XFORMERS_ENABLED = os.environ.get("XFORMERS_DISABLED") is None
try:
if XFORMERS_ENABLED:
from xformers.ops import fmha, scaled_index_add, index_select_cat
from xformers.ops import fmha, index_select_cat, scaled_index_add

XFORMERS_AVAILABLE = True
# warnings.warn("xFormers is available (Block)")
Expand Down
3 changes: 1 addition & 2 deletions moge/model/dinov2/layers/layer_scale.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
from typing import Union

import torch
from torch import Tensor
from torch import nn
from torch import Tensor, nn


class LayerScale(nn.Module):
Expand Down
2 changes: 1 addition & 1 deletion moge/model/dinov2/layers/patch_embed.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

from typing import Callable, Optional, Tuple, Union

from torch import Tensor
import torch.nn as nn
from torch import Tensor


def make_2tuple(x):
Expand Down
3 changes: 1 addition & 2 deletions moge/model/dinov2/layers/swiglu_ffn.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@

import os
from typing import Callable, Optional
import warnings

from torch import Tensor, nn
import torch.nn.functional as F
from torch import Tensor, nn


class SwiGLUFFN(nn.Module):
Expand Down
1 change: 0 additions & 1 deletion moge/model/dinov2/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

from . import vision_transformer as vits


logger = logging.getLogger("dinov2")


Expand Down
10 changes: 5 additions & 5 deletions moge/model/dinov2/models/vision_transformer.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@
# https://github.com/facebookresearch/dino/blob/main/vision_transformer.py
# https://github.com/rwightman/pytorch-image-models/tree/master/timm/models/vision_transformer.py

from functools import partial
import math
import logging
from typing import Sequence, Tuple, Union, Callable, Optional, List
import math
from functools import partial
from typing import Callable, Sequence, Tuple, Union

import torch
import torch.nn as nn
import torch.utils.checkpoint
from torch.nn.init import trunc_normal_

from ..layers import Mlp, PatchEmbed, SwiGLUFFNFused, MemEffAttention, NestedTensorBlock as Block

from ..layers import MemEffAttention, Mlp, PatchEmbed, SwiGLUFFNFused
from ..layers import NestedTensorBlock as Block

logger = logging.getLogger("dinov2")

Expand Down
2 changes: 1 addition & 1 deletion moge/model/dinov2/utils/cluster.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
# This source code is licensed under the Apache License, Version 2.0
# found in the LICENSE file in the root directory of this source tree.

from enum import Enum
import os
from enum import Enum
from pathlib import Path
from typing import Any, Dict, Optional

Expand Down
8 changes: 3 additions & 5 deletions moge/model/dinov2/utils/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,15 @@
# This source code is licensed under the Apache License, Version 2.0
# found in the LICENSE file in the root directory of this source tree.

import math
import logging
import math
import os

from omegaconf import OmegaConf

import dinov2.distributed as distributed
from dinov2.configs import dinov2_default_config
from dinov2.logging import setup_logging
from dinov2.utils import utils
from dinov2.configs import dinov2_default_config

from omegaconf import OmegaConf

logger = logging.getLogger("dinov2")

Expand Down
1 change: 0 additions & 1 deletion moge/model/dinov2/utils/dtype.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import numpy as np
import torch


TypeSpec = Union[str, np.dtype, torch.dtype]


Expand Down
3 changes: 1 addition & 2 deletions moge/model/dinov2/utils/param_groups.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@
# This source code is licensed under the Apache License, Version 2.0
# found in the LICENSE file in the root directory of this source tree.

from collections import defaultdict
import logging

from collections import defaultdict

logger = logging.getLogger("dinov2")

Expand Down
1 change: 0 additions & 1 deletion moge/model/dinov2/utils/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import torch
from torch import nn


logger = logging.getLogger("dinov2")


Expand Down
13 changes: 6 additions & 7 deletions moge/model/modules.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
from typing import *
from numbers import Number
import functools
import importlib
import itertools
import functools
import sys
from typing import *

import torch
from torch import Tensor
import torch.nn as nn
import torch.nn.functional as F

from .dinov2.models.vision_transformer import DinoVisionTransformer
from .utils import wrap_dinov2_attention_with_sdpa, wrap_module_with_gradient_checkpointing, unwrap_module_with_gradient_checkpointing
from ..utils.geometry_torch import normalized_view_plane_uv
from .utils import (
wrap_dinov2_attention_with_sdpa,
wrap_module_with_gradient_checkpointing,
)


class ResidualConvBlock(nn.Module):
Expand Down
1 change: 1 addition & 0 deletions moge/model/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import torch.nn as nn
import torch.nn.functional as F


def wrap_module_with_gradient_checkpointing(module: nn.Module):
from torch.utils.checkpoint import checkpoint
class _CheckpointingWrapper(module.__class__):
Expand Down
16 changes: 7 additions & 9 deletions moge/model/v1.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
from typing import *
from numbers import Number
from functools import partial
from pathlib import Path
import importlib
import warnings
import json
from numbers import Number
from pathlib import Path
from typing import *

import torch
import torch.nn as nn
Expand All @@ -15,10 +13,10 @@
import utils3d
from huggingface_hub import hf_hub_download


from ..utils.geometry_torch import normalized_view_plane_uv, recover_focal_shift, gaussian_blur_2d, dilate_with_mask
from .utils import wrap_dinov2_attention_with_sdpa, wrap_module_with_gradient_checkpointing, unwrap_module_with_gradient_checkpointing
from ..utils.tools import timeit
from ..utils.geometry_torch import normalized_view_plane_uv, recover_focal_shift
from .utils import (
wrap_module_with_gradient_checkpointing,
)


class ResidualConvBlock(nn.Module):
Expand Down
14 changes: 6 additions & 8 deletions moge/model/v2.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
from typing import *
import warnings
from numbers import Number
from functools import partial
from pathlib import Path
import warnings
from typing import *

import torch
import torch.amp
import torch.nn as nn
import torch.nn.functional as F
import torch.utils
import torch.utils.checkpoint
import torch.amp
import torch.version
import utils3d
from huggingface_hub import hf_hub_download

from ..utils.geometry_torch import normalized_view_plane_uv, recover_focal_shift, angle_diff_vec3
from .utils import wrap_dinov2_attention_with_sdpa, wrap_module_with_gradient_checkpointing, unwrap_module_with_gradient_checkpointing
from .modules import DINOv2Encoder, MLP, ConvStack
from ..utils.geometry_torch import normalized_view_plane_uv, recover_focal_shift
from .modules import MLP, ConvStack, DINOv2Encoder



class MoGeModel(nn.Module):
encoder: DINOv2Encoder
neck: ConvStack
Expand Down
Loading