A 1x1 convolution is a convolution operation in a Convolutional Neural Network (CNN) that uses a filter with a spatial size of 1×1. Although it looks very simple, it is useful for changing the number of channels, combining information across channels, and reducing computational cost.
1. What Is a 1x1 Convolution?
A normal convolution might use a 3×3 or 5×5 filter to look at neighboring pixels.
A 1×1 convolution looks at one spatial position at a time, but it processes all the channels at that position.
For example, if the input has:
32 × 32 × 128
a 1×1 convolution can transform it into:
32 × 32 × 64
without changing the height and width.
👉 Simple meaning:
A 1×1 convolution mainly works on the channel dimension rather than looking at neighboring pixels.
2. How Does It Work?
Suppose one pixel location has 128 channel values.
A 1×1 filter contains weights for those 128 channels. It combines them to produce a new value.
If we use 64 different 1×1 filters, we get 64 output channels.
So:
128 input channels → 64 output channels
👉 Why it matters:
The network can learn which combinations of channel information are useful.
3. How Can It Reduce Channels?
One important use of 1×1 convolution is dimensionality reduction.
For example:
Input: 64 × 64 × 256
1×1 convolution: 64 filters
Output: 64 × 64 × 64
The spatial dimensions stay the same, but the number of channels decreases from 256 to 64.
👉 Result:
Later convolution layers have fewer channels to process, which can significantly reduce computation.
4. How Can It Increase Channels?
A 1×1 convolution can also increase the number of channels.
For example:
64 × 64 × 64 → 64 × 64 × 128
This happens when the layer uses 128 filters.
👉 Why it matters:
Increasing channels gives the network more feature representations to work with.
5. Why Is It Computationally Efficient?
Consider a 3×3 convolution operating on 256 input channels and producing 128 output channels.
It requires many more parameters than a 1×1 convolution that performs the same channel transformation.
A 1×1 convolution uses much less computation because it does not process a spatial neighborhood.
👉 Why it matters:
It can reduce the workload of later layers while still allowing the network to learn useful combinations of features.
6. Does 1x1 Convolution Only Look at One Pixel?
Spatially, yes—but there is an important detail.
A 1×1 filter does not look at only one channel.
It looks at the values from all input channels at that spatial location and combines them.
👉 Example:
For an RGB image, a 1×1 convolution can combine the Red, Green, and Blue values at each pixel to create a new feature.
With deeper CNN layers, the same idea applies to dozens or hundreds of feature channels.
7. Can It Learn New Features?
Yes.
A 1×1 convolution performs a learned weighted combination of channels, usually followed by an activation function.
This allows the network to create new feature representations.
For example:
Existing features → 1×1 convolution → Combined features → Activation
👉 Why it matters:
The layer can learn which feature combinations are useful for the next stage of the network.
8. Where Is It Used?
1×1 convolutions are commonly used in architectures such as:
- GoogLeNet/Inception
- ResNet
- MobileNet
- Other efficient CNN architectures
They are particularly useful when networks need to control the number of feature channels while maintaining spatial information.
9. Real-World Example
Imagine a CNN layer producing:
56 × 56 × 512
feature maps.
Processing all 512 channels with an expensive 3×3 convolution can require substantial computation.
A 1×1 convolution can first reduce this to:
56 × 56 × 128
Then the following 3×3 convolution works with only 128 channels.
👉 Result:
The network can perform the expensive spatial convolution with significantly less computation.
Conclusion
A 1×1 convolution is a simple but powerful CNN operation that mainly transforms information across channels while keeping the spatial dimensions unchanged. It can reduce or increase the number of channels, combine useful features, and lower the computational cost of later convolution layers. This makes it an important technique in efficient CNN architectures such as Inception, ResNet, and MobileNet.