我正在使用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]标签计算损失。
由于我的英语不好,我正在使用数字来展示问题以便更好地理解。
Caffe Reshape Layer的结果
如果我做得对,有什么建议吗?
答案 0 :(得分:1)
无论如何计算损失都很好。事实上,1x15形状的计算将为您节省转换时间。损耗计算仍然是逐像素的;逻辑组织并不重要。
使用相同的想法,计算3x5或5x3并不重要;重要的是你的卷积输出和你的标签相互匹配。
如果您希望显示(图形,图片等)匹配,也许您可以在绘制输出之前切换x和y指定。