rf-detr-temporal / src /rfdetr /export /protocols.py
bongkj's picture
Upload RF-DETR-Temporal code and model card
b08d258 verified
Raw
History Blame Contribute Delete
1.21 kB
# ------------------------------------------------------------------------
# RF-DETR
# Copyright (c) 2025 Roboflow. All Rights Reserved.
# Licensed under the Apache License, Version 2.0 [see LICENSE for details]
# ------------------------------------------------------------------------
"""Exporter protocol — enables dependency-inversion for model export."""
from pathlib import Path
from typing import Protocol, runtime_checkable
import torch.nn as nn
@runtime_checkable
class ExporterProtocol(Protocol):
"""Protocol for model exporters.
Any callable or class that matches this signature can be registered
as an exporter without inheriting from a base class.
"""
def __call__(
self,
model: nn.Module,
input_shape: tuple[int, ...],
output_path: Path,
) -> Path:
"""Export *model* to *output_path*.
Args:
model: The PyTorch model to export.
input_shape: Input tensor shape (excluding batch dimension).
output_path: Destination path for the exported artifact.
Returns:
The resolved path to the exported file.
"""
...