在张量流中合并相邻像素的 RMSE 计算
RMSE computation incorporating neighboring pixels in tensorflow
我正在使用 tensorflow 和 Keras 训练 FCNN,我目前使用 RMSE 进行验证:
import tensorflow
from tensorflow.python.keras import backend
def rmse(y_true, y_pred):
return backend.sqrt(backend.mean(backend.square(y_pred - y_true)))
但我不想逐像素比较,而是想计算包含相邻像素的 RMSE,这意味着对于每个像素,将考虑 y_true 中的相同对应像素加上它的 3x3 或 5x5 相邻像素来计算误差像素.
如何在 keras 中实现它?
而不是这样做:
def rmse(y_true, y_pred):
return backend.sqrt(backend.mean(backend.square(y_pred - y_true)))
你可以试试 :
avg_pool = tf.keras.layers.AveragePooling2D(pool_size=(2, 2),
strides=(1, 1), padding='valid'))
def rmse(y_true, y_pred):
return backend.sqrt(backend.mean(backend.square(avg_pool(y_pred) - avg_pool(y_true))))
我正在使用 tensorflow 和 Keras 训练 FCNN,我目前使用 RMSE 进行验证:
import tensorflow
from tensorflow.python.keras import backend
def rmse(y_true, y_pred):
return backend.sqrt(backend.mean(backend.square(y_pred - y_true)))
但我不想逐像素比较,而是想计算包含相邻像素的 RMSE,这意味着对于每个像素,将考虑 y_true 中的相同对应像素加上它的 3x3 或 5x5 相邻像素来计算误差像素.
如何在 keras 中实现它?
而不是这样做:
def rmse(y_true, y_pred):
return backend.sqrt(backend.mean(backend.square(y_pred - y_true)))
你可以试试 :
avg_pool = tf.keras.layers.AveragePooling2D(pool_size=(2, 2),
strides=(1, 1), padding='valid'))
def rmse(y_true, y_pred):
return backend.sqrt(backend.mean(backend.square(avg_pool(y_pred) - avg_pool(y_true))))