在tensorflow 1.15中构建一个minpool层

时间:2020-01-16 08:50:25

标签: python tensorflow conv-neural-network

有人要求我在tensorflow 1(具体来说为1.15)中编写一个 min 池层。我在网上看了很多资源,但老实说我有些迷茫。我的意思是,我在这里看到了平均值池层的实现:

Custom median pooling in tensorflow

但是我真的不明白那里发生了什么。我阅读了tf.extract_image_patches的文档,但无法真正理解那里发生的事情,其余答案也不清楚。

我知道如何使用numpy实现这一层,因此,如果有一种简便的方法来获取tf张量,将其传递给numpy函数,然后以张量形式返回-并将此函数集成为我的CNN中的一层-太好了。

1 个答案:

答案 0 :(得分:0)

为什么不这样(伪代码):

neg_input = -1*input
max_of_neg = max_pool(neg_input)
min_pooled = -1*max_pool

这里的想法是-x的最大值是x的最小值(负数)。因此,我们采用负数,对其进行最大池化,然后再次采用负数。
不需要自定义池操作-实际上创建一个与内置池一样性能的自定义池可能非常困难,除非您对C ++ / CUDA编码感到满意。