class_docstr: DropBlock, a form of structured dropout, where units in a contiguous
  region of a feature map are dropped together.
  
  Parameters
  ----------
  keep_proba : float
      Fraction of the input units to keep. Value needs to be
      between ``0`` and ``1``.
  
  block_size : int or tuple
      Size of the block to be dropped. Blocks that have squared shape can
      be specified with a single integer value. For example, `block_size=5`
      the same as `block_size=(5, 5)`.
  
  {Identity.name}
  
  Methods
  -------
  {Identity.Methods}
  
  Attributes
  ----------
  {Identity.Attributes}
  
  See Also
  --------
  :layer:`Dropout` : Dropout layer.
  
  References
  ----------
  [1] Golnaz Ghiasi, Tsung-Yi Lin, Quoc V. Le. DropBlock: A regularization
      method for convolutional networks, 2018.
  
  Examples
  --------
  >>> from neupy.layers import *
  >>> network = join(
  ...     Input((28, 28, 1)),
  ...
  ...     Convolution((3, 3, 16)) >> Relu(),
  ...     DropBlock(keep_proba=0.1, block_size=5),
  ...
  ...     Convolution((3, 3, 32)) >> Relu(),
  ...     DropBlock(keep_proba=0.1, block_size=5),
  ... )
class_docstr_tok: ["DropBlock",",","a","form","of","structured","dropout",",","where","units","in","a","contiguous","region","of","a","feature","map","are","dropped","together",".","Parameters","--","--","--","--","--","keep_proba",":","float","Fraction","of","the","input","units","to","keep",".","Value","needs","to","be","between","``","0","``","and","``","1","``",".","block_size",":","int","or","tuple","Size","of","the","block","to","be","dropped",".","Blocks","that","have","squared","shape","can","be","specified","with","a","single","integer","value",".","For","example",",","`","block_size=5","`","the","same","as","`","block_size=","(","5",",","5",")","`",".","{","Identity.name","}","Methods","--","--","--","-","{","Identity.Methods","}","Attributes","--","--","--","--","--","{","Identity.Attributes","}","See","Also","--","--","--","--",":","layer",":","`","Dropout","`",":","Dropout","layer",".","References","--","--","--","--","--","[","1","]","Golnaz","Ghiasi",",","Tsung-Yi","Lin",",","Quoc","V.","Le",".","DropBlock",":","A","regularization","method","for","convolutional","networks",",","2018",".","Examples","--","--","--","--",">",">",">","from","neupy.layers","import","*",">",">",">","network","=","join","(","...","Input","(","(","28",",","28",",","1",")",")",",","...","...","Convolution","(","(","3",",","3",",","16",")",")",">",">","Relu","(",")",",","...","DropBlock","(","keep_proba=0.1",",","block_size=5",")",",","...","...","Convolution","(","(","3",",","3",",","32",")",")",">",">","Relu","(",")",",","...","DropBlock","(","keep_proba=0.1",",","block_size=5",")",",","...",")"]
code: def __init__(self, keep_proba, block_size, name=None):
      super(DropBlock, self).__init__(name=name)
  
      if isinstance(block_size, int):
          block_size = (block_size, block_size)
  
      self.keep_proba = keep_proba
      self.block_size = block_size
  
file_path: neupy/neupy/layers/stochastic.py
imports: import tensorflow
  from neupy.utils import asfloat
  from neupy.exceptions import LayerConnectionError
  from neupy.core.properties import ProperFractionProperty, NumberProperty, TypedListProperty
  from .base import Identity
label_desc: Use image node_id 1 to create a new DropBlock object from inherited base classes: Identity with example: obj = DropBlock(keep_proba, block_size, name)