1. A method for training machine learning algorithms to match input images to example images based on combinations of body shape, body pose, and clothing item, the method comprising: accessing, by a processing device, synthetic training images having known combinations of a training body pose, a training clothing item, and a training body shape; training, by the processing device, a machine learning algorithm to generate training feature vectors describing the known combinations of the training body pose, the training clothing item, and the training body shape, wherein training the machine learning algorithm comprises: selecting a set of the synthetic training images with known body pose variations and known body shape variations, generating input depth maps based on clothing depicted in the selected set of synthetic training images, accessing a neural network for encoding the input depth maps into the training feature vectors and decoding output depth maps from the training feature vectors, and performing an iterative adjustment of the neural network, wherein: (a) in a first iteration prior to an adjustment, a first training feature vector encoded by the neural network includes (i) a first set of dimension values for a first set of dimensions representing body pose from the selected set of synthetic training images and (ii) a second set of dimension values for a second set of dimensions representing body shape from the selected set of synthetic training images, (b) a first difference value indicates a difference between (i) an input depth map encoded into the first training feature vector and (ii) a first output depth map decoded from the first training feature vector, (c) in a second iteration subsequent to the adjustment, a second training feature vector encoded by the neural network includes (i) a first set of modified dimension values for the first set of dimensions representing body pose from the selected set of synthetic training images and (ii) a second set of modified dimension values for the second set of dimensions representing body shape from the selected set of synthetic training images, (d) a second difference value indicates a difference between the input depth map and a second output depth map decoded from the second training feature vector, and (e) the iterative adjustment of the neural network is completed based on the second difference value being less than the first difference value; and outputting, by the processing device, the trained machine learning algorithm for matching (i) an input image having an input body shape and input body pose to (ii) an example image having a known combination of example body shape and example body pose.