gpt4 book ai didi

tensorflow - Tensorflow 中的高斯核

转载 作者:行者123 更新时间:2023-12-05 07:45:05 31 4
gpt4 key购买 nike

Torch7 has a library for generating Gaussian Kernels在一个固定的支持。 Tensorflow 中有什么可比的吗?我看到 these distributions in TF contrib ,但我不确定如何使用它来获得内核(在权重总和为 1 的固定网格上)。

最佳答案

我正在使用以下函数生成内核来模糊图像:

def gaussian_kernel(size: int, mean: float, std: float):
"""Makes 2D gaussian Kernel for convolution."""
d = tf.distributions.Normal(mean, std)
vals = d.prob(tf.range(start = -size, limit = size + 1, dtype = tf.float32))
gauss_kernel = tf.einsum('i,j->ij', vals, vals)
gauss_kernel = gauss_kernel/tf.reduce_sum(gauss_kernel)
return gauss_kernel

内核大小为 2 * size + 1。例如。 size=2 生成一个 5x5 的内核。

我通过将内核与原始输入 (tf.nn.conv2d) 的每个 channel 进行卷积,在 lambda 层中使用它。这是与 tf 1.12 一起使用的,但对于 tf2 应该进行一些调整(例如 tfp.distributions.Normal 而不是 tf.distributions.Normal)

关于tensorflow - Tensorflow 中的高斯核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42196271/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com