caffe:如何解释欧氏损失(逐像素回归)

caffe: How to interpret EuclideanLoss (pixel-wise regression)

我有一个图像作为输入,一个图像作为 ground_truth。我的最后一层是 EuclideanLoss,其中最后 convolutional 层具有 num_output = 1,以便计算这两幅图像之间的损失。

在使用我的 deploy.prototxt 测试网络时,我省略了 EuclideanLoss 层,这意味着我的最后一层是 Convolutional 层,然后是 Relu 层.当我通过 Python 检索这些值时,我该如何解释这些值:

pred = net.forward()

output_blob = pred['result']

output_blob 是 1xheightxwidth 形状,但值不在特定范围内。他们甚至可以是消极的。您如何检索正确的值来创建图像?或者我必须如何解释这些值?我是否必须从输入图像中减去它们,或者我应该如何处理它们?

如果你知道你的输出应该是非负的,为什么要使用负斜率的 ReLU?,我会将其更改为常规的 ReLU 层。 然后,在使用 forward() 之后,你应该得到这样的输出数据:

output_data=output_blob.data[...]

该输出的形状可能类似于 Batch、nchannels、H、W。 您可以使用 output_data=np.squeeze (output_data) 将输出作为二维矩阵。

编辑: 解释最后一层值的方法是,它是最接近(根据 L2 距离)在给定输入训练期间看到的深度估计的图像。