我想用SSIM指标作为我正在研究的模型的损失函数张量流。 SSIM 应该测量去噪自动编码器的重构输出图像与输入未损坏图像之间的相似度(RGB).
据我了解,为了在张量流中使用 SSIM 指标,图像应该是归一化为 [0,1] 或 [0,255],而不是 [-1,1]。将我的张量转换为 [0,1] 并实现 SSIM 作为我的损失函数后,重建的图像是黑白的,而不是彩色的 RGB 图像。
tf.reduce_mean(tf.image.ssim(reconstructed, truth, 1.0))
我的模型运行良好MSE(均方误差),重建图像是彩色的(RGB).
using tf.losses.mean_squared_error(truth, reconstructed)
重建的图像将是 RGB 图像,而使用 SSIM 会给我一个一维图像。
为什么使用SSIM 作为损失函数给出的结果与 MSE 不同(就重建图像通道而言)在张量流中?
我能够通过将图像的动态范围更改为来解决该问题2.0,因为我的图像在之间缩放[-1, 1] by:
loss_rec = tf.reduce_mean(tf.image.ssim(truth, reconstructed, 2.0))
由于更高的图像质量显示出更好的SSIM值,我必须尽量减少负面影响我的损失函数(SSIM)来优化我的模型:
optimizer = tf.train.AdamOptimizer(learning_rate).minimize(-1 * loss_rec)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)