python - Caffe 多标签矩阵输入

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

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

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

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

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

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

Caffe Reshape 层结果

enter image description here

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

最佳答案

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

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

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

关于python - Caffe 多标签矩阵输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40977530/

相关文章:

c++ - 为什么我运行 node-waf build 后有一个 .lock-wscript 文件

c++ - 编译时检查以确保结构中的任何地方都没有填充

python - 较大的神经网络比较小的神经网络会收敛到更大的误差

javascript - 在外部 javascript 文件中使用 Jinja2 模板引擎

python - 如何制作仅匹配嵌套括号的中间括号的正则表达式?

python - 抓取 html 时添加适当的间距

c++ - 运行任何带有一半参数的仿函数

machine-learning - 如何将神经网络模型转换为独立函数源代码

python - 如何使用自动编码器可视化降维? ( python | tensorflow )

python - 使用 statsmodels 创建残差图