注意
您正在阅读 MMSelfSup 0.x 版本的文档,而 MMSelfSup 0.x 版本将会在 2022 年末 开始逐步停止维护。我们建议您及时升级到 MMSelfSup 1.0.0rc 版本,享受由 OpenMMLab 2.0 带来的更多新特性和更佳的性能表现。阅读 MMSelfSup 1.0.0rc 的 发版日志, 代码 和 文档 获取更多信息。
mmselfsup.models.necks.simmim_neck 源代码
# Copyright (c) OpenMMLab. All rights reserved.
import torch
import torch.nn as nn
from mmcv.runner import BaseModule
from ..builder import NECKS
[文档]@NECKS.register_module()
class SimMIMNeck(BaseModule):
"""Pre-train Neck For SimMIM.
This neck reconstructs the original image from the shrunk feature map.
Args:
in_channels (int): Channel dimension of the feature map.
encoder_stride (int): The total stride of the encoder.
"""
def __init__(self, in_channels: int, encoder_stride: int) -> None:
super(SimMIMNeck, self).__init__()
self.decoder = nn.Sequential(
nn.Conv2d(
in_channels=in_channels,
out_channels=encoder_stride**2 * 3,
kernel_size=1),
nn.PixelShuffle(encoder_stride),
)