How Many Parameters Does ResNet-50 Have?
ResNet-50 has 25,557,032 parameters (25.6M). Breakdown: conv layers ~23.5M, batch norm ~53K, FC layer ~2.05M.
Parameter Breakdown
Layer | Parameters
-------------------|------------
conv1 (7x7, s2) | 9,408 # 3*64*7*7, no bias
Layer1 (3 blocks) | 2,15,808
Layer2 (4 blocks) | 1,219,584
Layer3 (6 blocks) | 7,098,368
Layer4 (3 blocks) | 14,964,736
BatchNorm (all) | 53,120 # 2 params per channel, 53 BN layers
FC (2048 → 1000) | 2,049,000 # 2048*1000 + 1000
-------------------------------------
Total | 25,557,032
Memory Requirements
FP32 parameters: 25.6M * 4 bytes = ~97.5 MB
FP16 parameters: 25.6M * 2 bytes = ~48.8 MB
Training (Adam): ~97.5 MB * 4 = ~390 MB (params + grads + 2 optimizer states)
Inference (FP32): ~97.5 MB (parameters only)
PyTorch Verification
import torchvision.models as models
model = models.resnet50()
total = sum(p.numel() for p in model.parameters())
trainable = sum(p.numel() for p in model.parameters() if p.requires_grad)
print(f"Total parameters: {total:,}") # 25,557,032
print(f"Trainable: {trainable:,}") # 25,557,032
print(f"Size (MB): {total * 4 / 1e6:.1f}") # 97.5 MB
Comparison with Other ResNets
ResNet-18: 11,689,512 (11.7M)
ResNet-34: 21,797,672 (21.8M)
ResNet-50: 25,557,032 (25.6M)
ResNet-101: 44,549,160 (44.5M)
ResNet-152: 60,192,808 (60.2M)