class_docstr: MKL Backend
class_docstr_tok: ["MKL","Backend"]
docstr: 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.
docstr_tok: ["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","."]
code: 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,
  ):
      """
      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.
      """
      # default to non-overlapping
      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,
      )
  
imports: from __future__ import division
  from builtins import zip
  import logging
  from neon.backends import layer_mkl
  from neon.backends.util.check_mkl import get_mkl_lib
  from neon.backends.nervanacpu import CPUTensor, NervanaCPU, CustomNumpy
  import ctypes
  from cffi import FFI
  from ctypes import c_longlong, c_float, c_double, c_int
  import numpy
  from neon.backends import math_cpu
  from neon.backends.backend import OpTreeNode
  import os
  import sys
label_desc: Use image node_id 12 for calling the NervanaMKL obj's underlying member method code with example usage: obj.pool_layer(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) and returns: layer_mkl