Встречается на собеседованиях • сегодня

Зачем нужен residual block

Residual block (остаточный блок) решает проблему затухания градиентов в глубоких нейросетях. Он позволяет передавать входные данные на более глубокие слои через skip-connection, что упрощает обучение.

Основная идея:
output = F(x) + x, где F(x) — преобразование слоями, x — вход.

Пример в PyTorch:

python
class ResidualBlock(nn.Module):
    def __init__(self, in_channels):
        super().__init__()
        self.conv1 = nn.Conv2d(in_channels, in_channels, kernel_size=3, padding=1)
        self.conv2 = nn.Conv2d(in_channels, in_channels, kernel_size=3, padding=1)
    
    def forward(self, x):
        residual = x
        out = F.relu(self.conv1(x))
        out = self.conv2(out)
        out += residual  # Skip-connection
        return F.relu(out)

Преимущества:

  • Упрощает обучение очень глубоких сетей (ResNet).
  • Помогает градиентам распространяться без затухания.
  • Модель может "выбирать", использовать преобразование F(x) или пропустить его.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы