1. A method comprising: receiving, at a neural network, a subset of images of a plurality of images of a training image set; and training the neural network by iteratively adjusting parameters of the neural network based on concurrent application of multiple loss functions to the subset of images, the multiple loss functions including a classification loss function and a hashing loss function, wherein the classification loss function is associated with an image classification function that extracts image features from an image, and wherein the hashing loss function is associated with a hashing function that generates a hash code for the image.