k-max pooling实现

来源:互联网 发布:软件测试模拟题 编辑:程序博客网 时间:2024/05/10 09:22
使用theano实现k-max pooling,github上目前还没有找到theano的实现,自己就写了一个简单的,仿照的是keras issues里面的一个提交。由于theano在反向bp时能够自动处理array index的变化,因此本质上是很简单的。
def k_max_pooling2d(data, k):    output = data[T.arange(data.shape[0]).dimshuffle(0, "x", "x", "x"),              T.arange(data.shape[1]).dimshuffle("x", 0, "x", "x"),              T.sort(T.argsort(data, axis=2)[:, :, -k:, :], axis=2),              T.arange(data.shape[2]).dimshuffle("x", "x", "x", 0)]    return output
0 0
原创粉丝点击