ResNet-50, 25.6M Parameters, Full Breakdown

torchvision's ResNet-50 (models.resnet50()) has exactly 25,557,032 parameters, all trainable: ~23.5M convolutional, ~2.05M in the final fully connected layer.

Updated May 26, 2026

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)
Try the Parameter Counter
By the same builder: GitHub, theluckystrike BeLikeNative, Grammar AI EarlyThunder, Dev Blog Bug Bounty Reality Zovo, AI Dev Tools