## Using MatConvNet to train convnets

MatConvNet can be used to train models, typically by using a form of stochastic gradient descent (SGD) and back-propagation.

The following learning demonstrators are provided in the MatConvNet package:

• MNIST. See examples/mnist/cnn_mnist.m.
• CIFAR. See examples/cifar/cnn_cifar.m.
• ImageNet. See examples/imagenet/cnn_imagenet.m.

These demos are self-contained; MNIST and CIFAR, in particular, automatically download and unpack the required data, so that they should work out-of-the-box.

While MNIST and CIFAR are small datasets (by today's standard) and training is feasible on a CPU, ImageNet requires a powerful GPU to complete in a reasonable time (a few days!). It also requires the vl_imreadjpeg() command in the toolbox to be compiled in order to accelerate reading large batches of JPEG images and avoid starving the GPU.

All these demos use the example/cnn_train.m and example/cnn_train_dag.m SGD drivers, which are simple implementations of the standard SGD with momentum, done directly in MATLAB code. However, it should be easy to implement your own specialized or improved solver.