Caffe多标签矩阵输入

时间:2016-12-05 15:21:15

标签: python c++ neural-network deep-learning caffe

我正在使用ConvNet解决检测问题。但是在我的情况下,标签是每个图像的维度[3 x 5]的矩阵。我用Caffe做这项工作。当我使用Datalayer读取标签时,我使用HDF5Layer阅读图像。

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

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

由于我的英语不好,我正在使用数字来展示问题以便更好地理解。

输入矩阵标签的示例(注意图像只是为了说明而放大) Input Matrix Lab

Caffe Reshape Layer的结果

enter image description here

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

1 个答案:

答案 0 :(得分:1)

无论如何计算损失都很好。事实上,1x15形状的计算将为您节省转换时间。损耗计算仍然是逐像素的;逻辑组织并不重要。

使用相同的想法,计算3x5或5x3并不重要;重要的是你的卷积输出和你的标签相互匹配。

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