我在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性能指南,我从那里获取了上述信息。