It seems that np.dot is interpreting this as the more standard A*x where A 
is a 2x3 matrix and x is a 3 dimensional vector. Where as theano is 
interpreting it is X*A where X is a 3x1 matrix and A is a 2x3 matrix.
If you do 
z = T.dot(x,y)
instead of
z = np.dot(x,y)
they will both work the same and the theano function will interpret it as 
the standard A*x.

On Tuesday, October 2, 2018 at 5:55:10 PM UTC-4, DL_user wrote:
>
> Why do these two functions have different outputs, even both of them 
> defined from numpy's dot() function:
>
> x = T.dmatrix('x')
>
> y = T.dvector('y')
>
> z = np.dot(x,y)
>
> f = theano.function([x,y],z)
>
> f([[1,2,3],[4,5,6]],[7,8,9])
> Out[31]: 
> array([[ 7., 16., 27.],
>        [28., 40., 54.]])
>
> np.dot([[1,2,3],[4,5,6]],[7,8,9])
> Out[32]: array([ 50, 122])
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"theano-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to theano-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to