如何解决Tensorflow 中 1D 的 SSIM 损失
TensorFlow 有一个 image ssim,但没有用于 1D(结构相似性指数度量 - SSIM)。
在查看 tf.image.ssim
的 git hub 后,将其更改为 1D 看起来并不容易。为了尝试按原样使用 tf.image.ssim
,我尝试重塑并添加另一个维度(因为“窗口”默认为 11)。这是我的初步尝试:
def SSIMLoss(y_true,y_pred):
y_pred = np.array(y_pred).astype('float16')
y_pred = y_pred.reshape(y_pred.shape + (1,))
y_true = np.array(y_true).astype('float16')
y_true = y_true.reshape(y_true.shape + (1,))
y_true_final = y_true.copy()
y_pred_final = y_pred.copy()
for i in range(10):
y_true_final = np.vstack((y_true_final,y_true))
y_pred_final = np.vstack((y_pred_final,y_pred))
return 1 - tf.image.ssim(y_true_final,y_pred_final,1.0)
如果您将单个 1D DataFrame 传递给它,这会起作用。
我已经尝试调整它,以便我可以将其用作实际的损失函数,但是传入的 TF 张量无法移动到数组中,因为它位于图形中(并且所有尝试都没有成功) .有没有更简单的方法来做到这一点,或者我最好从头开始编写 1D ssim(以及我将如何使用 TF 张量来做到这一点)?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。