<p>I found a cool method called predefined evenly-distributed class centroids:</p>
<p><a href="https://github.com/anlongstory/CSAE/blob/master/PEDCC.py" rel="nofollow noreferrer">https://github.com/anlongstory/CSAE/blob/master/PEDCC.py</a></p>
<p>An elaboration of the method is in this paper <a href="https://arxiv.org/abs/1902.00220" rel="nofollow noreferrer">A Classification Supervised Auto-Encoder Based on Predefined Evenly-Distributed Class Centroids</a></p>
Generate N points as far as possible from each other on a D dimension hypersphere
<p>I'm trying to write code to generate N points as far as possible from each other on a D dimensional hypersphere. The method I have so far is to take the number of points and hope it's less than D or 2*D, which it usually will be. Then I create N vectors that are 0 at every index except at index n where n is between 1 and N/2 and then duplicate that times it by -1 then append it, but I think that'll only generate points equally spaced apart on a portion of a sphere. Here's my code</p>
<pre><code>import numpy as np

start = np.eye(D)[:N/2]
points = np.cat((start, -1*start), axis=1)
</code></pre>