Sie stammt von Theano, siehe
https://github.com/Theano/Theano/blob/m ... e/pfunc.py Zeile 75.
Ich habe lediglich in einer function:
[codebox=python file=Unbenannt.txt]def get_EPhi(self, lengthscale_trf, lengthscale_p_trf, sf_trf, S, MU, SIGMA_trf, U, b, N, M):
# lengthscale_trf # Q
# lengthscale_p_trf # Q
# sf_trf # 1
# S # M x Q
# MU # N x Q
# SIGMA_trf # N x Q
# U # M x Q
# b # M
# N # 1
# M # 1
... other Code
# decay1 = T.exp(-0.5 * ((S_hat_minus**2)[ :, :,None, :] * D_n).sum(3)) # M x M x N x Q
# decay2 = T.exp(-0.5 * ((S_hat_plus**2)[ :, :,None, :] * D_n).sum(3)) # M x M x N x Q
# cos_w1 = T.cos((S_hat_minus[ :, :,None, :] * d_n).sum(3) + big_sum_minus[ :, :,None]) # M x M x N x Q
# cos_w2 = T.cos((S_hat_plus[ :, :,None, :] * d_n).sum(3) + big_sum_plus[ :, :,None]) # M x M x N x Q
# EPhiTPhi = (sf_trf/M) * (decay1 * cos_w1 + decay2 * cos_w2).sum(2) # M x M
EPhiTPhi = np.zeros((50,50))
for i in range(0, 900):
D_n_temp = SIGMA_trf[i,:][None,None, :] # M x M x Q
d_n_temp = MU[i,:][None,None, :] # M x M x Q
EPhiTPhi = EPhiTPhi + T.exp(-0.5 * (S_hat_minus**2 * D_n_temp).sum(2)) * T.cos((S_hat_minus * d_n_temp).sum(2) + big_sum_minus) + T.exp(-0.5 * (S_hat_plus**2 * D_n_temp).sum(2)) * T.cos((S_hat_plus * d_n_temp).sum(2) + big_sum_plus) # M x M
EPhiTPhi = (sf_trf/M) * EPhiTPhi
return EPhi, EPhiTPhi[/code]
# decay1 = T.exp(-0.5 * ((S_hat_minus**2)[ :, :,None, :] * D_n).sum(3)) # M x M x N x Q
# decay2 = T.exp(-0.5 * ((S_hat_plus**2)[ :, :,None, :] * D_n).sum(3)) # M x M x N x Q
# cos_w1 = T.cos((S_hat_minus[ :, :,None, :] * d_n).sum(3) + big_sum_minus[ :, :,None]) # M x M x N x Q
# cos_w2 = T.cos((S_hat_plus[ :, :,None, :] * d_n).sum(3) + big_sum_plus[ :, :,None]) # M x M x N x Q
# EPhiTPhi = (sf_trf/M) * (decay1 * cos_w1 + decay2 * cos_w2).sum(2) # M x M
durch die for loop ersetzt. Zuvor lief die Compilierung einwandfrei.