Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This version inspired from the original code aims at fixing few issues:
Firstly only one kernel was implemented, I outsourced the kernel so that the potential users can implement whichever they like. They can even make it a nn.Module class so that the gradient can be backpropagated to the kernel itself, one can now implement multiple gaussian kernel as the origin author did but also Mattern or polynomial to plug them to the MMD loss
Secondly the original code was meant for a source and a target that had the same size which is not the general case, it has been fixed here
Finally I made a utility function to outsource the broadcasting operations useful for computing the kernel