1. A computer-implemented method for training a deep learning neural network for compact face representations, the method comprising: presenting face images to the neural network, wherein the neural network is a pyramid convolutional neural network (CNN) comprising at least N shared layers where N≧2 and at least one unshared network coupled to the Nth shared layer; the neural network processing the face images to produce compact representations of the face images, wherein the compact representations have not more than 64 dimensions; processing the compact representations to produce estimates of a metric, for which actual values of the metric are known; and training the neural network based on the estimates of the metric compared to the actual values of the metric, wherein training the pyramid CNN comprises: training CNN levels 1 to N in that order, wherein CNN level n comprises an input for receiving the face images, the first n shared layers of the pyramid CNN, the unshared network of the pyramid CNN, and an output producing the compact representations of the face images; wherein the input is coupled to a first of the n shared layers; each shared layer includes convolution, non-linearity and down-sampling; an nth of the n shared layers is coupled to the unshared network; and the unshared network is coupled to the output, wherein training CNN level n comprises: presenting face images to the input, each face image producing the corresponding compact representation at the output, processing the compact representations to produce estimates of a metric, for which actual values of the metric are known, and adapting the nth shared layer and the unshared network based on the estimates of the metric compared to the actual values of the metric.