首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在KERAS中计算PSNR度量

如何在KERAS中计算PSNR度量
EN

Stack Overflow用户
提问于 2019-04-25 16:07:39
回答 3查看 3.9K关注 0票数 0

我正在尝试为我的keras自动编码器convnet模型计算PSNR度量。然而,我遇到了一个错误。请帮助检查并纠正此问题。谢谢

import math
from keras import backend as K


def PSNR(y_true, y_pred):
    max_pixel = 1.0
    return 10.0 * math.log10((max_pixel ** 2) / (K.mean(K.square(y_pred - 
y_true)))) 


adam = optimizers.Adam(lr=0.0001)
autoencoder.compile(loss='mse', metrics=[PSNR], optimizer=adam) 

完整的回溯是:回溯(最近一次调用):

文件"",第1行,损失(autoencoder.compile=‘mse’,metrics=PSNR,optimizer=adm)

在编译handle_metrics(output_metrics)中,文件"C:\Users\LW\Anaconda3\envs\tensorflow_demo\lib\site-packages\keras\engine\training.py",第451行

handle_metrics mask=masksi中的File "C:\Users\LW\Anaconda3\envs\tensorflow_demo\lib\site-packages\keras\engine\training.py",第420行)

文件"C:\Users\LW\Anaconda3\envs\tensorflow_demo\lib\site-packages\keras\engine\training_utils.py",行404,加权score_array = fn(y_true,y_pred)

文件"",第8行,峰值信噪比返回10.0 * math.log10((max_pixel ** 2) / (K.mean(K.square(y_pred -y_true)

TypeError:必须是实数,而不是Tensorr

请告诉我如何解决这个问题

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-05-19 21:00:27

对我来说,马蒂亚斯·瓦尔登格罗的回答并不奏效。我花了几乎一天的时间来找出我的模型的错误之处,但最终我发现Valdenegro写的函数是错误的。

这是我修改的内容。

首先,不要乘以2.303。取而代之的是划分。因为自然对数大于以10为底的对数。

其次,根据keras api,在K.mean中应该有一个'axis=-1‘参数来计算均方误差。

因此,函数看起来像

def PSNR(y_true, y_pred):
    max_pixel = 1.0
    return (10.0 * K.log((max_pixel ** 2) / (K.mean(K.square(y_pred - y_true), axis=-1)))) / 2.303
票数 0
EN

Stack Overflow用户

发布于 2019-04-25 21:30:20

您不能在keras指标或损失函数中使用math.log,因为它不对符号张量进行操作。请改用(1.0 / math.log(10)) * K.log。应用转换因子是因为K.log是自然对数,而您想要以10为底的对数。

import math
def PSNR(y_true, y_pred):
    max_pixel = 1.0
    return 10.0 * (1.0 / math.log(10)) * K.log((max_pixel ** 2) / (K.mean(K.square(y_pred - 
y_true))))
票数 0
EN

Stack Overflow用户

发布于 2021-12-17 17:57:45

来自tensorflow的tf.image.psnrhttps://www.tensorflow.org/api_docs/python/tf/image/psnr只需根据您的需要更改max_val即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55844618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档