The idea of predicting assignments \(\mathbf {p}\) , and then comparing them with high-confidence estimates \(\mathbf {q}\)  (referred to as codes henceforth) of the predictions was proposed in Xie et al., [1]}. While Xie et al., [1]} uses pretrained features (from autoencoder) to compute the predicted assignments and the codes, using their approach in an end-to-end unsupervised manner might lead to degenerate solutions. Asano et al., [3]} avoid such degenerate solutions by enforcing an equi-partition constraint (the prototypes equally partition the data) during code computation using the Sinkhorn-Knopp algorithm [4]}. Caron et al., [5]} follow a similar formulation but compute the codes for the two views separately in an online manner for each mini-batch. The assignment codes are computed by solving the following optimization problem
\(\begin{split}Q^1 &= \operatornamewithlimits{arg\,max}_{Q\in \mathcal {Q}} \text{Tr}(Q^TC_0^TZ_0^1) + \epsilon H(Q) \\Q^2 &= \operatornamewithlimits{arg\,max}_{Q\in \mathcal {Q}} \text{Tr}(Q^TC_0^TZ_0^2) + \epsilon H(Q),\end{split}\) 
