我有形状[batch_size, x, y]
的数据,我想通过最大池层来传递它,以便在x和y平面中汇集2D部分,为我留下每个元素的最大值向量的2D矩阵的batch_size。但张量流layers.max_pooling2d
要求输入有4个维度。围绕这个的唯一方法是扩展每个示例的维度以具有“虚拟”第四维度?因为这样做会在我的模型中导致问题。
答案 0 :(得分:1)
最大池化层用于与二维图像一起使用,但具有一定数量的通道。这就是为什么the documentation表示如果data_format是NHWC则输入形状为“[batch_size, height, width, channels]
”,如果data_format为NCHW则输入形状为[batch_size, channels, height, width]
。
典型的3通道图像中的通道将是4通道图像中的红色,蓝色和绿色分量,或红色,绿色,蓝色和alpha。在这种情况下,您可能只需要扩展维度并使用单个通道(或者如果您打算使用多个通道,则重新访问数据处理管道)。
显然,max-pooling比仅仅用于图像更通用,但我相信在图像处理中已经完成了很多工作,因此界面可能是常见用例的工件。
如果您需要在使用最大合并图层后删除额外尺寸,只需重新整形数据。