这是我的代码。
@Component({
data() {
return {
sections: Array<SomeInterface> = []
}
}
})
但是这段代码返回TypeError。 我的代码有什么问题?
答案 0 :(得分:0)
不确定您的预期结果是什么,但由于您将x
中的tanh
视为数组,因此您可能需要使用np.multiply()
方法而不是np.dot()
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.multiply.html
def tanh(x):
for i in range(len(x)):
x[i]=(np.exp(2*x[i])-1)/(np.exp(2*x[i])+1)
return x
def single_layer_perceptron(x):
w = np.random.random(x.shape)
result = np.multiply(x, w)
return tanh(result)
arr = np.arange(10)
print(arr)
result_list=[]
for i in range(10000):
result_list.append(single_layer_perceptron(arr))
result_array=np.array(result_list)
print(np.mean(result_array))
print(np.std(result_array))
结果:
[0 1 2 3 4 5 6 7 8 9]
0.719183400513
0.357414867082
此外,您可以使用np.tanh(result)
代替您的功能。 result
必须是一个数组。 https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.tanh.html
答案 1 :(得分:0)
您确实应该指出错误发生的位置。但我可以用
重新创建它In [150]: x = np.arange(10)
In [151]: w = np.random.random(x.shape)
In [152]: w
Out[152]:
array([ 0.15289706, 0.36766394, 0.54739275, 0.11560176, 0.33185064,
0.27493645, 0.1237475 , 0.908773 , 0.50731216, 0.14327178])
In [153]: res = np.dot(x,w)
In [154]: res
Out[154]: 16.963178771225383
In [155]: len(res)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-155-8fa6b1079aa4> in <module>()
----> 1 len(res)
TypeError: object of type 'numpy.float64' has no len()
带有2个1d数组的 np.dot
返回内部产品(请参阅其文档),类型为np.float64
的对象(带有numpy包装器的float)。这不是数组或列表,因此没有len()
,并且不可迭代。这会在tanh
函数中产生此错误。