У меня есть следующая проблема оптимизации. Учитывая два np.arrays X
, Y
и функцию K
Я хотел бы как можно быстрее вычислить матричную погрешность gram_matrix, где элемент (i,j)-th
вычисляется как K(X[i],Y[j])
.Эффективное вычисление функции по элементам в Python
Здесь есть реализация с использованием вложенных for-loops, которые признаны самыми медленными для решения таких проблем.
def proxy_kernel(X,Y,K):
gram_matrix = np.zeros((X.shape[0], Y.shape[0]))
for i, x in enumerate(X):
for j, y in enumerate(Y):
gram_matrix[i, j] = K(x, y)
return gram_matrix
Любая помощь действительно оценена.
Может быть хорошо попросить это по обзору кода вместо. – TigerhawkT3
Без каких-либо знаний о том, что такое 'K', вы не будете делать намного лучше, чем вложенные циклы. – user2357112
К сожалению, K передается как параметр. Это печально, потому что это действительно медленная реализация, но пока это единственная работа. – dimstudio