首页 > 解决方案 > Keras Conv2D 参数顺序

问题描述

如果我有一个包含 32 个卷积 5x5 rgb 内核的层,我希望形状是 (32, 5, 5, 3) 是 (count, h, w, rgb) 但它是 (5, 5, 3 , 32)。这弄乱了迭代,因为

for kern in kernels:

无法正常工作。我得到一系列 (5 ,3, 32) ndarrays。我没有得到每个 5x5 rgb 内核。我只是做错了吗?

标签: keras

解决方案


奇怪的kernel是 存储在 shape(h, w, channels, filters)中,正如实现所暗示的那样:

kernel_shape = self.kernel_size + (self.filters, input_dim)
self.kernel = self.add_weight(shape=kernel_shape, ...)
...

但是,如果这是您所看到的,并且如果您需要遍历每个过滤器,为什么不直接移动轴np.moveaxis

kernel = np.moveaxis(kernel, -1,0)

得到想要的(kernels, h, w, channels).


推荐阅读