For DeepEMD, the OpenCV [1]} implementation of the EMD solver uses a modified Simplex algorithm to calculate the transport matrix, while qpth [2]} uses an interior point method. It should be noted that while the OpenCV solver is faster, its gradients cannot be accessed. Thus it should not be used for meta-training (while it is possible, the calculated transport matrix must be treated like a constant and so gradient quality – and downstream performance – suffers).
Note that for meta-testing episodes with shot number above one, DeepEMD learns a structured fully-connected layer via SGD. This leads to a significant slowdown compared to the 1-shot case – both because multiple forward and backward passes are required, and because once again OpenCV cannot provide gradients and thus should not be used.
