A CAE with a clustering layer was fit to the data. The encoder network structure was \(conv^2_{32} \rightarrow conv^1_{64} \rightarrow conv^2_{128} \rightarrow FC_{60}\)  where \(conv^h_n\)  denotes a convolutional layer with \(n\)  filters, a stride length of h, and a kernel size of 4 x 4 as default. The decoder was a mirror image of the encoder. The autoencoder was trained end-to-end for 200 epochs using Adam [1]} and the leaky ReLU activation function. After training, the clustering layer described above was attached to the embedded layer of the encoder, and trained for 500 additional epochs. The number of clusters in the clustering layer was set at various \(K = 2, \dots , 8\) . After training, CLAMs were used to visualize discriminative regions for all images.
