How do bottleneck architectures work in neural networks? We define a bottleneck architecture as the type found in the ResNet paper where [two 3x3 conv layers] are replaced by [one 1x1 conv, one 3x3 conv, and another 1x1 conv layer]. 
I understand that the 1x1 conv layers are used as a form of dimension reduction (and restoration), which is explained in another post.  However, I am unclear about why this structure as effective as the original layout.
Some good explanations might include: What stride length is used and at what layers?  What are example input and output dimensions of each module?  How are the 56x56 feature maps represented in the diagram above?  Do the 64-d refer to the number of filters, why does this differ from the 256-d filters?  How many weights or FLOPs are used at each layer?
Any discussion is greatly appreciated!
 A: As far as I understand, illustration on the right shows that input to this block already has 256 features. So we are deep into some ResNet architecture and already created 256 features (we lost some w x h due to conv 3x3 before but gained features instead).
Still, calculating 256 channels (features) can take too much time, and authors proposed using 1x1 conv layer with stride 1 and padding 0 that keeps image's w x h as it was but in the meantime reduces depth, number of output channels to 64.
Thus, but using this bottleneck, at first layer you are shoving w x h x 256 element into conv 1x1 layer that will pass through just w x h x 64
A: The bottleneck architecture is used in very deep networks due to computational considerations.
To answer your questions:


*

*56x56 feature maps are not represented in the above image. This block is taken from a ResNet with input size 224x224. 56x56 is the downsampled version of the input at some intermediate layer.

*64-d refers to the number of feature maps(filters). The bottleneck architecture has 256-d, simply because it is meant for much deeper network, which possibly take higher resolution image as input and hence require more feature maps.

*Refer this figure for parameters of each bottleneck layer in ResNet 50.
A: I just want to answer your questions:
What stride length is used and at what layers?
Stride is not relevant in this discussion/figure. The "layers" are represented as rectangles and are 2d convolutional layers.
How are the 56x56 feature maps represented in the diagram above?
Feature maps are the result of a conv. layer. So they should be positioned right after the rectangles (which are the convolutional layers). The dimension of the feature maps are not provided in the figure but can be calculated.
Do the 64-d refer to the number of filters, why does this differ from the 256-d filters?
Yes, they indicate the number of filters/kernels used in this layer. A lower number means that fewer filters are used which means that the network has less capacity to represent/store information. By this mechanism, a bottleneck is obtained and it is assumed that the network learns to focus on the most relevant things and remove noise.
