擅长:python、mysql、java
<p>您可以重新缩放<code>tanh</code>以获得具有可调整块度的序列:</p>
<pre><code>import numpy as np
def sigmoidspace(low,high,n,shape=1):
raw = np.tanh(np.linspace(-shape,shape,n))
return (raw-raw[0])/(raw[-1]-raw[0])*(high-low)+low
# default shape parameter
sigmoidspace(1,10,10)
# array([ 1. , 1.6509262 , 2.518063 , 3.60029094, 4.8461708 ,
# 6.1538292 , 7.39970906, 8.481937 , 9.3490738 , 10. ])
# small shape parameter -> almost linear points
sigmoidspace(1,10,10,0.01)
# array([ 1. , 1.99995391, 2.99994239, 3.99995556, 4.99998354,
# 6.00001646, 7.00004444, 8.00005761, 9.00004609, 10. ])
# large shape paramter -> strong clustering towards the ends
sigmoidspace(1,10,10,10)
# array([ 1. , 1.00000156, 1.00013449, 1.01143913, 1.87995338,
# 9.12004662, 9.98856087, 9.99986551, 9.99999844, 10. ])
</code></pre>