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.