我有一个 416x416 的输入图像。如何创建 4 x 10 的输出,其中 4 是列数,10 是行数?
我的标签数据是 4 列 10 行的二维数组。
我知道 reshape()
方法,但它要求生成的形状具有与输入相同数量的元素。
使用 416 x 416 输入大小和最大池层,我可以获得最大 13 x 13
输出。
有没有办法在不丢失数据的情况下实现4x10
输出?
我的输入标签数据看起来像例如
[[ 0 0 0 0]
[ 0 0 0 0]
[ 0 0 0 0]
[ 0 0 0 0]
[ 0 0 0 0]
[ 0 0 0 0]
[ 0 0 0 0]
[116 16 128 51]
[132 16 149 52]
[ 68 31 77 88]
[ 79 34 96 92]
[126 37 147 112]
[100 41 126 116]]
这表示我的图像上有 6 个我想要检测的对象,第一个值是 xmin,第二个值是 ymin,第三个值是 xmax,第四个值是 ymax。
我网络的最后一层看起来像
(None, 13, 13, 1024)
最佳答案
首先展平(None, 13, 13, 1024)
层
model.add(Flatten())
它将给出 13*13*1024=173056
一维张量
然后添加一个密集层
model.add(Dense(4*10))
它将输出到 40
这会将您的 3D 形状转换为 1D
然后根据您的需要简单地调整大小
model.add( reshape (4,10))
这可行,但绝对会破坏数据的空间特性
关于python - reshape Keras 层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49628739/