How it works
Spatial detail is averaged away on purpose
Pooling layers trade position for robustness, which is why a model can recognise a shape and still be poor at judging its proportion.
Somewhere inside almost every vision model sits a pooling layer, and its job is to throw information away on purpose. That is not a flaw. It is the specific design choice that lets the model recognise the same object shifted a few pixels left or right, and it comes at a direct cost to how precisely the model can localise anything.
What pooling does
A feature map coming out of an early layer is a grid: one value per small region of the image, per pattern the layer detects. Pooling shrinks that grid by summarising each small neighbourhood down to one number - usually the maximum value in the neighbourhood, sometimes the average. A four-by-four block of activations becomes one value. Do this a few times across a network and a large feature map collapses into a small, coarse summary by the time it reaches the layers that matter for a final score.
The point of this is robustness. A model trained without pooling, or with a naive alternative, would treat an object shifted three pixels to the left as a substantially different input. Pooling makes the model largely indifferent to exactly where a pattern sits within its receptive field, which is what lets a shape be recognised whether the photo is framed slightly high, slightly low, or slightly off-centre.
What it costs
The indifference is not free. By construction, pooling discards the fine-grained answer to "exactly where, within this region, did that pattern occur." Two inputs that differ only in the precise position of a feature within a pooled region become indistinguishable to everything downstream of that layer.
This matters for any judgement that depends on relative position and extent rather than on presence alone. Recognising that a shape exists is a task pooling helps with. Judging exact proportion - how one part relates in size or position to another - is a task pooling actively works against, because the fine spatial coordinates that a proportion judgement would need are exactly what got averaged away a few layers earlier. A model can be confident about what it is looking at and comparatively poor at reading precise geometry from the same representation.
Where this stops
This is a statement about spatial precision within an image, not about the separate and larger problem of a photograph having no depth or scale information at all - that ceiling is covered on its own, and it exists for a different reason: pooling would still be a limit even if the physics-level scale problem did not exist. Pooling is the reason a model's internal geometry is coarser than the pixel grid it started with; the missing-ruler problem is the reason no amount of internal geometry adds up to a physical unit.
The shape of the tradeoff
Every architecture choice like this trades one kind of accuracy for another kind of robustness, and pooling is one of the oldest and most standard of these trades. It is a large part of why a rating model that reports a shape or proportion axis is reading something coarser than its texture or surface reading, a distinction the layer-by-layer view of the model makes more concrete. Rate Cock's separate axes make that coarseness visible rather than folding it into one blended total, a per-axis chart most tools do not show at all. The measurement-first alternative - a tape and a fixed protocol rather than a pooled feature map - is Measure My Cock's whole approach, and it sidesteps this specific tradeoff entirely by not using a vision model for the geometry step. Reading a proportion axis with this ceiling in mind is worth doing before trusting it the way Penis Rater suggests treating any single axis, and it is one more reason a human reviewer reads position directly rather than through a pooled representation of it.