I am developing caffe code for over half a year now.
I still don't quite understand why there is LayerSetUp and Reshape and why Reshape is called in
inline Dtype Layer<Dtype>::Forward(...)
It should only be called if size has acutally changed.
If LayerSetUp is to set up size-independent stuff, then why in e.g. "BaseConvolutionLayer<Dtype>::LayerSetUp(...)", many size-dependent things happen (bottom channels)
I know in the old caffe it hasn't been like that.
For our nets we have homogenously-sized data and I think this is a big overhead.