Details of SimCLR implementation are shown in Fig. . The representation of an ion image is the output before the classification layer of EfficientNet-B0. A small multilayer perceptron with one hidden layer maps the representations to the projection space ( Z ) where the contrastive loss is applied. In the training step each ion image is used to generate a pair of augmentations. We treat two augmentations of one ion image as a positive pair ( , ) ij. Then the loss function is defined as ki and is a temperature parameter with a default value of 0.5. The final loss is computed across all positive pairs in the minibatch. To evaluate the quality of learned representations for mouse uterine benchmark, we used a linear evaluation and the nearest neighbor mining. In the linear evaluation, one average ion image was generated from each manually classified group of images as the centroid of the cluster. A linear classifier was subsequently trained on top of the frozen encoder with 13 average ion images and their corresponding annotated labels. Next, all original ion images were classified by the CNN encoder and the updated linear classifier. The resulting classification accuracy is used as a proxy for the quality of image representation 29 . In the nearest neighbor mining protocol, for each ion image, we searched its K nearest neighbors (K  [1, 30]) based on cosine distance in the representation space. We quantified the of the neighborhood by counting the annotation-matching pairs for each image and their nearest neighbors.