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)

Related Questions

Try the Parameter Counter