Keras 的卷积和反卷积层是为方形网格设计的。有没有办法让它们适应六边形网格?
例如,如果我们使用轴坐标,则半径为 1 的内核的输入(x,y)
应为:
[(x-1,y), (x-1,y+1), (x,y-1), (x,y+1), (x+1,y-1), (x+1, y)]
一种选择是用一个 3 x 3 的盒子来捏造它,但是你使用的是不同距离的单元格。
一些想法:
- 修改 Kera 的卷积层代码以使用这些输入而不是默认输入。问题是 Kera 调用它的后端而不是自己实现它,这意味着我们也需要修改后端。
- 使用 3 x 3 的框,但将权重设置为 0
(x-1,y-1)
和(x+1,y+1)
0。不幸的是,我不知道如何在 Kera 中将权重永久设置为给定值。 - 使用立方体坐标而不是轴坐标。在这种情况下,一个 3 x 3 x 3 的框将只包含中心十六进制的邻居和设置为 0 的输入。问题是它使输入数组变得更大。更有问题的是,一些对应于非十六进制的坐标(例如 (1,0,0))将被分配非零输出(因为 (0,0,0) 落在其 3 x 3 x 3 框内)。
有没有更好的解决方案?