kod aşağıda:Döngü için bu döngüyü nasıl vektör edebilirim?
import numpy as np
X = np.array(range(15)).reshape(5,3) # X's element value is meaningless
flag = np.random.randn(5,4)
y = np.array([0, 1, 2, 3, 0]) # Y's element value in range(flag.shape[1]) and Y.shape[0] equals X.shape[0]
dW = np.zeros((3, 4)) # dW.shape equals (X.shape[1], flag.shape[1])
for i in xrange(5):
for j in xrange(4):
if flag[i,j] > 0:
dW[:,j] += X[i,:].T
dW[:,y[i]] -= X[i,:].T
daha verimli, döngü için bu vektörize nasıl dW hesaplamak için? İşte
'y' endeksi,' - = 'tamponlama problemleri olabilir. Bu 'ufunc' .at 'yardımcı olabilir. – hpaulj
@hpaulj Anladım, teşekkürler – Eric
İlk satırın 'maskelenmiş olduğu = np.where (bayrak> 0, X.T [..., np.newaxis], 0) 'yayını kullan, parlak! Yani vektörleştirmenin bir yolu boyutlarını arttırıyor mu? –