Design patterns have been in use in the software engineering world for quite some time.

A design pattern implies that there is a “best practice” for constructing and coding a model that can be reapplied across a wide range of cases, such as image classification, object detection and tracking, facial recognition, image segmentation, super resolution and style transfer.

Design patterns are coming to neural network design.

The introduction of design patterns also helped advance convolutional neural networks (as well as other network architectures) by aiding other researchers in understanding and reproducing a model’s architecture.