
v1 Column dropout 은 feature 단위 drop. DropPath (Stochastic Depth, Huang et al. 2016) 은 ResNet 의 전체 residual 블록 을 샘플별로 skip:
, Bernoulli(1-p) — 배치 샘플마다 독립.
ResNet 의 한 블록 에서:
즉 residual 부분만 on/off.
이 문제는 residual 텐서 (이미 계산된 결과) 를 입력받아 drop_path 만 적용:
if not training or p == 0:
return x
mask (N, 1, 1, ...) shape 에 broadcast ← 샘플별 독립
return x * mask / (1 - p)
(NN 블록 전체가 아니라 residual 출력에 적용한다고 가정 — PyTorch timm.models.layers.DropPath 와 동일.)
함수 drop_path(x, p, seed, training) 를 완성하세요.
x: 임의 shape (N, ...). 첫 축이 batch./ (1-p).| # | 이름 | 검증 |
|---|---|---|
| 1 | training=False → 원본 | |
| 2 | p=0 → 원본 | |
| 3 | p=1 → 모두 0 | |
| 4 | 샘플별 독립 (n 마다 mask 다름) | |
| 5 | 같은 샘플의 모든 원소는 동일 mask | x[n, :] 전부 0 또는 전부 scaled |
| 6 | 기대값 보존 (큰 샘플) | |
| 7 | shape 유지 (다차원) |
코드를 작성하고 Run 을 눌러보세요.