Ich habe zwei Matrizen, die Form haben (1,3) und (3,1) Und ich möchte sie hinzufügen und eine Matrix (3,3) ausgeben In numpy, es funktioniert so :Hinzufügen von Broadcast-Matrix in theano
import numpy as np
a = np.array([0,1,2])
b = a.reshape(3,1)
a+b
Und es gibt:
array([0,1,2],
[1,2,3],
[2,3,4]]
Jetzt würde ich verwenden Theanos mag die gleichen Dinge zu tun, um den Code zu beschleunigen. Mein Code ist wie folgt dargestellt:
label_vec1 = T.imatrix('label_vector')
label_vec2 = T.imatrix('label_vector')
alpha_matrix = T.add(label_vec1, label_vec2)
alpha_matrix_compute = theano.function([label_vec1,label_vec2],alpha_matrix)
a = numpy.array([[0,1,2]])
b = numpy.array([[0],[1],[2]])#
a1=theano.shared(numpy.asarray(a), broadcastable =(True,False))
b1 = theano.shared(numpy.asarray(b),broadcastable=(False, True))
c = alpha_matrix_compute(a1,b1)
Aber es gibt
TypeError: ('Bad input argument to theano function at index 0(0-based)', 'Expected an array-like object, but found a Variable: maybe you are trying to call a function on a (possibly shared) variable instead of a numeric array?')
Ich bin verwirrt, warum es passiert? BTW, wird es schneller sein mit theano mit GPU als mit numpy?