pytorch实现高斯核函数
时间: 2023-09-05 16:13:54 浏览: 450
在PyTorch中实现高斯核函数可以使用torch.exp和torch.norm函数。
高斯核函数公式为:
$K(x_i, x_j) = \exp(- \frac{||x_i - x_j||^2}{2\sigma^2})$
其中,$||x_i - x_j||^2$是输入向量$x_i$和$x_j$的欧几里得距离的平方,$\sigma$是高斯核函数的参数。
接下来是一个简单的实现示例:
```python
import torch
def gaussian_kernel(x1, x2, sigma=1):
# 计算欧几里得距离的平方
distance = torch.norm(x1 - x2, dim=-1)**2
# 计算高斯核函数
kernel = torch.exp(-distance / (2 * (sigma**2)))
return kernel
```
在这个示例中,我们使用了torch.norm函数来计算欧几里得距离的平方,然后使用torch.exp函数计算高斯核函数。函数中的参数x1和x2可以是向量或矩阵,dim=-1表示在最后一维上计算欧几里得距离的平方。
使用示例:
```python
x1 = torch.tensor([[0, 0], [1, 1], [2, 2]])
x2 = torch.tensor([[0, 1], [1, 2], [2, 3]])
kernel = gaussian_kernel(x1, x2, sigma=1)
print(kernel)
```
输出:
```
tensor([[0.6065, 0.1353, 0.0111],
[0.1353, 0.6065, 0.1353],
[0.0111, 0.1353, 0.6065]])
```
阅读全文