Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在keras中实现ssim的损失函数?_Python_Tensorflow_Keras_Loss Function - Fatal编程技术网

Python 如何在keras中实现ssim的损失函数?

Python 如何在keras中实现ssim的损失函数?,python,tensorflow,keras,loss-function,Python,Tensorflow,Keras,Loss Function,我需要SSIM作为我的网络中的损失函数,但我的网络有2个输出。我需要对第一个输出使用SSIM,对下一个输出使用交叉熵。损失函数是它们的组合。但是,我需要一个更高的SSIM和更低的交叉熵,所以我认为它们的组合是不正确的。另一个问题是,我无法在keras中找到SSIM的实现 Tensorflow有tf.image.ssim,但它接受图像,我认为我不能在丢失函数中使用它,对吗?你能告诉我该怎么办吗?我是keras和deep learning的初学者,我不知道如何将SSIM作为keras中的自定义损失函

我需要SSIM作为我的网络中的损失函数,但我的网络有2个输出。我需要对第一个输出使用SSIM,对下一个输出使用交叉熵。损失函数是它们的组合。但是,我需要一个更高的SSIM和更低的交叉熵,所以我认为它们的组合是不正确的。另一个问题是,我无法在keras中找到SSIM的实现

Tensorflow有
tf.image.ssim
,但它接受图像,我认为我不能在丢失函数中使用它,对吗?你能告诉我该怎么办吗?我是keras和deep learning的初学者,我不知道如何将SSIM作为keras中的自定义损失函数。

查看keras中的SSIM损失。
您可以编写一个自定义损失函数,为一个预测创建SSIM损失,为另一个预测创建交叉熵。您可以返回两个损失的加权和作为最终损失

这意味着如果我想最小化损失函数,我应该使用1-SSIM,我不能使用SSIM和交叉熵来最小化我的损失函数,对吗?你的工作是计算损失,你的优化器试图最小化它。我不确定你要的是什么。我的意思是图像处理中更好的SSIM更高,应该接近1,但mse应该接近零,才能有更好的算法。所以我认为如果我使用SSIM作为损失函数,优化器应该最大化它,而不是最小化它。这意味着我应该最小化1-SSIM,对吗?你可以使用最小化
mse-SSIM
(适当加权)。因此,当您最小化此数量时,
mse
将最小化,
ssim
将最大化。