我必须对初始数组0和1的几组部分随机副本进行迭代操作。
我希望这些副本不同,当然也是不同的。
现在我使用这段代码(我省略了一些不应该干扰问题的部分):
def randomizer(b) :
"""randomizes a fraction 'rate' (global variable) of b"""
c = np.copy(b)
num_elem = len(c)
idx = np.random.choice(range(num_elem), int(num_elem*rate), replace=False)
c[idx] = f(c[idx])
return c
def randomizePatterns(pattern, randomizer) :
"""Return nbTrials partially randomized copies of the given input pattern"""
outputs = np.tile(pattern,(nbTrials,1))
for line in xrange(nbTrials) :
outputs[line] = randomizer(outputs[line,:])
return outputs
def test(pattern,randomizer) :
randomPatterns = randomizePatterns(pattern, randomizer)
"""test the dynamics of a neural network with a fixed but initially random
connection scheme, and returns a boolean corresponding to if
the original pattern that was randomized is retrieved from at least
90% of the randomized patterns"""
return boolean
def metaTest(pattern):
successNumber = 0
for plop in xrange(10):
if test(pattern, randomizer) :
successNumber += 1
return successNumber
要测试的另一个输入是[0,4]中的浮点数的随机矩阵,我可视化并具有预期的行为。 当我运行metaTest时,我总是得到0或10,而不是中间值。 鉴于测试的性质,我期望得到大约5的结果。我得到大约一半输入的每个结果。
更准确地说,在每次增加plop之后打印随机模式,我得到相同的东西十次,我希望改变。