# Does a differentiable clustering algorithm exist?

I have some vectors $x_0, x_1, x_2, ... x_n$ for a fixed $n$ (the vector dimension is about 2-20). I know there are $m$ clusters for these $n$ vectors (where $1\leq m \leq n$).

For every input vector $x_i$ I should get a probability for each cluster (e.g. generated by $\mathrm{softmax}$). This algorithm should contain as few parameters as possible.

I tried to implement a differentiable k-means, but the result was not that great, especially it seems to be hard to select good initial cluster centers. Maybe there already exists such an algorithm or it is easy to port one?

Thank you