'Create a new PoolLayer parameter object.
This then is passed as an argument to all pooling kernels.
op: "max", "avg", "l2" pooling (currently bprop only supports max, but not avg and l2)
N: Number of images in mini-batch
C: Number of input feature maps
D: Depth  of input image
H: Height of input image
W: Width  of input image
J: Size of feature map pooling window (maxout n_pieces)
T: Depth  of pooling window
R: Height of pooling window
S: Width  of pooling window
padding: amount of zero-padding around the given image or feature map edge
strides: factor to step the window by in a given direction (overlap allowed)
Leave spatial dimensions at 1 to allow feature map pooling in the fc layers.'

def pool_layer(self, dtype, op, N, C, D=1, H=1, W=1, J=1, T=1, R=1, S=1, pad_c=0, pad_d=0, pad_h=0, pad_w=0, str_c=None, str_d=None, str_h=None, str_w=None):

    if (str_c is None):
        str_c = J
    if (str_d is None):
        str_d = T
    if (str_h is None):
        str_h = R
    if (str_w is None):
        str_w = S
    return layer_mkl.PoolLayerMKL(self, dtype, op, N, C, D, H, W, J, T, R, S, pad_c, pad_d, pad_h, pad_w, str_c, str_d, str_h, str_w)
