gpt4 book ai didi

python - 实现自定义层来生成二维指数图像

转载 作者:太空宇宙 更新时间:2023-11-03 20:37:36 25 4
gpt4 key购买 nike

我需要实现一个自定义层(在 Tensorflow 或 Keras 中),它生成具有可学习参数(方差)的 2d 高斯热图。我希望该层将每个样本的中心(即地面实况地标坐标)作为它们的输入和输出 2d 高斯图像。但是,我不确定如何实现它,因为我必须迭代样本数,而当样本数为“无”时,在“调用”方法中进行编译期间这是不可能的。更具体地说,如果只有一个样本,这就是我生成热图的方式:

def call(self,landmark):

x, y = tf.meshgrid(tf.linspace(-100.0,100.0,128), tf.linspace(-100.0,100.0,128))
d = tf.sqrt((x-landmark[0])**2+(y-landmark[1])**2)

g=tf.exp(-tf.square(d)/(2*self.sigma**2))/(2*np.pi*self.sigma)
return g

但是,假设地标是最初形状为 (None,2) 的输入张量,我如何实现一个为每个样本输出相应结果的层?

最佳答案

我想出了一个答案,我不确定它的效果如何:您可以制作一个二维常量网格图像和地标的列表,并同时将它们作为输入传递,那么调用函数将是:

def call(self, x):
image, landmark = x
sub = image - landmark

sigma = self.kernel

d = KB.sqrt((sub[:, :, :, 0]) ** 2 + (sub[:, :, :, 1]) ** 2)

g = tf.exp(-tf.square(d) / (2 * sigma ** 2)) / (2 * np.pi * sigma)

return g

关于python - 实现自定义层来生成二维指数图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57067542/

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