I have a pretty good understanding of individual neural net layers (fully connected, convolution, pooling, activation, etc) but struggle to construct combinations of them to solve a given problem. I know there are common "off the shelf" architectures for certain problem types but often times they don't do great if your data is considerably different. Is there any "method to the madness" or is it an acquired skill? Any resources would be appreciated!