global_max_pool/global_avg_pool 和 avg_pool_2d/1d/3d 有什么区别?

What is the difference between global_max_pool/global_avg_pool and avg_pool_2d/1d/3d?

我试着比较了 tflearn 的文本分类教程代码:https://github.com/tflearn/tflearn/blob/master/examples/nlp/cnn_sentence_classification.py

来自 dennybritz 的那个: https://github.com/dennybritz/cnn-text-classification-tf

这两个代码显示不同的结果,我知道这可能是因为 tflearn 教程使用了 1d 卷积,但是有一行代码我不明白:

网络 = global_max_pool(网络)

global_max_pool和max_pool_2d有什么区别?

查看代码,他们对张量流库进行了不同的调用:

2d_max_pool

广泛地做您期望的事情并且returns(以及做一些其他事情):

tf.nn.max_pool(incoming, kernel, strides, padding)

使用指定的参数。这是一个4d张量,类似于输入one

global_max_pool

实际上对输入张量进行了相当大的缩减。输入张量的维度:

[batch, height, width, in_channels]

函数 global_max_pool 然后 returns (以及做一些其他事情)

tf.reduce_max(incoming, [1, 2])

我认为给出每个张量的最大值 in_channels