v = np.random.normal(0, 0.01, (200, 785))
x is 60000 by 785
for ele in x:
a = np.dot(v, ele.T)
h = tanh(a)
def tanh(value):
value = np.clip(value, -20, 20)
return 2*sigmoid(2*value) -1
def sigmoid(value):
return 1.0/(1+math.exp(-value))
我收到错误,"只有长度为1的数组才能转换为Python标量 ",说我不能像那样应用sigmoid,就像元素一样。
基本上,问题是:a是200比1,我想做tanh(a)。 另外,我不太明白为什么我允许应用更简单的函数,如+1元素,但不是sigmoid,这涉及exp。
答案 0 :(得分:2)
您需要使用np.exp
代替math.exp
。后者不支持NumPy阵列。