关于tensorflow的max_pooling函数的混淆

时间:2018-02-05 06:56:31

标签: python tensorflow machine-learning computer-vision

我在tensorflow帮助中得到了这个信息:

tf.layers.max_pooling1d?
Max Pooling layer for 1D inputs.

Arguments:
   inputs: The tensor over which to pool. Must have rank 3.

tf.layers.max_pooling2d?

Max pooling layer for 2D inputs (e.g. images).

Arguments:
   inputs: The tensor over which to pool. Must have rank 4.

我的困惑是为什么输入需要等级3和等级4?

1 个答案:

答案 0 :(得分:2)

可能导致您混淆的是一个等级对应于频道。

对于2D输入(比方说图像),4个等级对应于以下内容:

  • N是指批量中的图像数量。
  • H是指垂直(高度)维度中的像素数。
  • W是指水平(宽度)维度中的像素数。
  • C指的是频道。例如,1表示黑白或灰度,3表示RGB。

根据您是希望拥有channels_first还是channels_last,排名分别为NCHWNHWC

对于1D输入,只有HW中的一个(我更喜欢将其视为W,但这取决于您),因此您拥有NCWchannels_first)或NWCchannels_last)。

有关排序(channels_firstchannels_last)如何影响计算速度的详细信息,您可能需要查看我从中获取上述信息的TensorFlow Performance Guide