当前位置: 首页 > 工具软件 > 豆豆Pool > 使用案例 >

k-max-pooling

胡昊
2023-12-01

 

 

还有一种常用的操作是k-max-pooling.这种是在max-pooling上改进来的,因为max-pooling操作太简单粗暴了,k-max-pooling认为每一块不只一个点重要,前几个亮点都比较重要,所以在每一个pooling块中取了前k大的值。

 

import torch
def kmax_pooling(x, dim, k):
    index = x.topk(k, dim=dim)[1].sort(dim=dim)[0]
    return x.gather(dim, index)
x = torch.rand(4, 5, 6, 10)
print(x)                        # [torch.FloatTensor of size 4x5x6x10]
y = kmax_pooling(x, 3, 5)       
print(y)                        # # [torch.FloatTensor of size 4x5x6x5]

 

 类似资料: