(
X: AnyNDArray, lengthscales: AnyNDArray, signal_variance: AnyNDArray
)
| 15 | "signal_variance: [broadcast D_tuple...]", |
| 16 | ) |
| 17 | def ref_rbf_kernel( |
| 18 | X: AnyNDArray, lengthscales: AnyNDArray, signal_variance: AnyNDArray |
| 19 | ) -> AnyNDArray: |
| 20 | N, _ = X.shape |
| 21 | kernel = np.zeros((N, N)) |
| 22 | for row_index in range(N): |
| 23 | for column_index in range(N): |
| 24 | vecA = X[row_index, :] |
| 25 | vecB = X[column_index, :] |
| 26 | delta = vecA - vecB |
| 27 | distance_squared = np.dot(delta.T, delta) |
| 28 | kernel[row_index, column_index] = signal_variance * np.exp( |
| 29 | -0.5 * distance_squared / lengthscales ** 2 |
| 30 | ) |
| 31 | return kernel |
| 32 | |
| 33 | |
| 34 | @check_shapes( |
no outgoing calls
searching dependent graphs…