Python theano:R-operation如何工作?

时间:2015-09-25 12:06:03

标签: python theano

我在theano上执行以下操作:

>>> import theano
>>> import theano.tensor as T
>>> x = T.dvector('x')
>>> y = T.dvector('y')
>>> f = T.dot(x,y)
>>> Jy= T.Rop(f,x,y)
>>> fun = theano.function([x,y],Jy)
>>> fun([1000,2000,3000],[2,4,8])
array(84.0)

但是,如果我手动计算一个简单的例子,我有:

x = [x1,x2,x3]
y = [y1,y2,y3]
f = [x1y1,x2y2,x3y3]
df/dx = |y1, 0, 0|
        |0, y2, 0|
        |0,  0,y3|
(df/dx)*y = [y1^2, y2^2, y3^2]

因此我希望得到[4, 16, 64]的结果,但我得到了这些的总和。什么是Rop计算方式不同?

1 个答案:

答案 0 :(得分:1)

差异是由于对theano.dot在示例代码中所做的事情的误解造成的。

theano.dot(x, y)等于标量34000给出您的示例输入,因为它是计算向量内积而不是元素乘积,正如您的手示例所示。

通过更改

可以获得您期望的结果
f = T.dot(x,y)

f = x * y