MatConvNet - Convolutional Neural Networks for MATLAB
Andrea Vedaldi, Karel Lenc
TL;DR
MatConvNet delivers a MATLAB-native framework for CNNs by exposing core building blocks (convolution, pooling, normalization, etc.) as simple functions, enabling rapid prototyping and research within the MATLAB ecosystem. It combines a pair of wrappers (SimpleNN and DagNN) with pre-trained models and learning utilities, supported by GPU-accelerated implementations and optional CuDNN integration to scale to large datasets like ImageNet. The paper details the mathematical foundation, network representations (sequences and DAGs), backpropagation mechanics, and extensive implementation notes across all blocks, including derivatives, receptive field calculations, and numerical stability considerations. This results in a flexible, educational, and scalable CNN toolkit that bridges MATLAB workflows with modern deep learning capabilities, suitable for both experimentation and deployment of large-scale vision models.
Abstract
MatConvNet is an implementation of Convolutional Neural Networks (CNNs) for MATLAB. The toolbox is designed with an emphasis on simplicity and flexibility. It exposes the building blocks of CNNs as easy-to-use MATLAB functions, providing routines for computing linear convolutions with filter banks, feature pooling, and many more. In this manner, MatConvNet allows fast prototyping of new CNN architectures; at the same time, it supports efficient computation on CPU and GPU allowing to train complex models on large datasets such as ImageNet ILSVRC. This document provides an overview of CNNs and how they are implemented in MatConvNet and gives the technical details of each computational block in the toolbox.
