Restore conv7x7 in MONA (full 3x3+5x5+7x7 multi-scale)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -29,17 +29,18 @@ coloredlogs.install(level="INFO", logger=LOGGER, fmt="%(asctime)s %(name)s %(lev
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
class MonaOp(nn.Module):
|
||||
"""Multi-cognitive visual filter: parallel depthwise convs (3×3, 5×5)."""
|
||||
"""Multi-cognitive visual filter: parallel depthwise convs (3×3, 5×5, 7×7)."""
|
||||
|
||||
def __init__(self, channels: int) -> None:
|
||||
super().__init__()
|
||||
self.conv3 = nn.Conv2d(channels, channels, kernel_size=3, padding=1, groups=channels)
|
||||
self.conv5 = nn.Conv2d(channels, channels, kernel_size=5, padding=2, groups=channels)
|
||||
self.conv7 = nn.Conv2d(channels, channels, kernel_size=7, padding=3, groups=channels)
|
||||
self.projector = nn.Conv2d(channels, channels, kernel_size=1)
|
||||
|
||||
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
||||
identity = x
|
||||
x = (self.conv3(x) + self.conv5(x)) / 2.0 + identity
|
||||
x = (self.conv3(x) + self.conv5(x) + self.conv7(x)) / 3.0 + identity
|
||||
return x + self.projector(x)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user