Caffe 多标签矩阵输入

Caffe Multi-Label Matrix Input

我正在使用 ConvNet 解决检测问题。但是在我的例子中,标签是每个图像的维度 [3 x 5] 的矩阵。我使用 Caffe 来完成这项工作。我使用 Datalayer 读取图像,同时使用 HDF5Layer 读取标签。

HDF5Layer 将[3x5] 标签矩阵读取为[1x15] 维向量。 因此,在计算 L2 损失之前,我使用 Reshape Layer 将向量重塑为矩阵。但是我意识到重塑层在 H x W 中格式化数据,而我的标签矩阵是 [W x H] 即 [w=3, h=5] 因此重塑是不正确的。我想知道有没有办法以正确的顺序重塑 [1x15] 标签向量,即 [3x5]not [5x3]

我认为我可以解决的另一种方法是将输出形式的卷积层展平为 [1 x 15],然后使用我的 [1 x 15] 标签计算损失。

由于我的英语不好,我使用图表来展示问题以便更好地理解。

我的输入矩阵标签示例(注意图片只是为了说明而放大)

Caffe Reshape 层的结果

如果我做对了有什么建议吗?

计算损失的任何一种方法都可以。事实上,以 1x15 形状计算可以节省您转换的时间。损失计算仍然是逐个像素的;逻辑组织并不重要。

用同样的思路,计算 3x5 还是 5x3 并不重要;重要的是你的卷积输出和你的标签正确匹配。

如果您希望显示(图形、图片等)匹配,也许您可​​以在绘制输出之前切换 x 和 y 指定。