DropBlock:结构化丢弃正则化卷积网络

FreeGuideOnline 最新 2026-06-21

python def drop_block(x, block_size, gamma, training): if not training or gamma == 0: return x # 计算中心点概率掩码 mask = torch.bernoulli(torch.ones_like(x) * gamma) # 将每个中心点膨胀为 block_size 方块 block_mask = max_pool2d(mask, kernel_size=block_size, stride=1, padding=block_size//2) # 取反,保留区域为1,丢弃区域为0 block_mask = 1 - block_mask.clamp(0, 1) # 归一化保持均值 return x * block_mask * block_mask.numel() / block_mask.sum()