我在TensorFlow的文档中找到了以下信息:
tf.layers.max_pooling1d?用于1D输入的最大池化层。参数: inputs:要进行池化的张量。必须为3阶。
以及:
tf.layers.max_pooling2d?用于2D输入(如图像)的最大池化层。参数: inputs:要进行池化的张量。必须为4阶。
我的困惑在于,为什么输入分别需要3阶和4阶?
回答:
可能导致你困惑的原因是,一阶对应于通道数。
对于2D输入(比如图像),4阶对应于以下内容:
N
表示批次中的图像数量。H
表示垂直(高度)维度上的像素数量。W
表示水平(宽度)维度上的像素数量。C
表示通道数。例如,黑白或灰度图为1,RGB图为3。
根据你是想要channels_first
还是channels_last
,阶的顺序分别为NCHW
或NHWC
。
对于1D输入,只有一个H
或W
(我更喜欢将其视为W
,但这取决于你),因此你有NCW
(channels_first
)或NWC
(channels_last
)。
关于排序(channels_first
或channels_last
)如何影响计算速度的更多信息,你可以查看TensorFlow性能指南,我从那里获取了上述信息。