neupy.layers.DropBlock

class neupy.layers.DropBlock[source]

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).

name : str or None

Layer’s name. Can be used as a reference to specific layer. Name Can be specified as:

  • String: Specified name will be used as a direct reference to the layer. For example, name=”fc”
  • Format string: Name pattern could be defined as a format string and specified field will be replaced with an index. For example, name=”fc{}” will be replaced with fc1, fc2 and so on. A bit more complex formatting methods are acceptable, for example, name=”fc-{:<03d}” will be converted to fc-001, fc-002, fc-003 and so on.
  • None: When value specified as None than name will be generated from the class name.

Defaults to None.

See also

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),
... )
Attributes:
variables : dict

Variable names and their values. Dictionary can be empty in case if variables hasn’t been created yet.

Methods

variable(value, name, shape=None, trainable=True) Initializes variable with specified values.
get_output_shape(input_shape) Computes expected output shape from the layer based on the specified input shape.
output(*inputs, **kwargs) Propagates input through the layer. The kwargs variable might contain additional information that propagates through the network.
block_size = None[source]
get_output_shape(input_shape)[source]
keep_proba = None[source]
options = {'block_size': Option(class_name='DropBlock', value=TypedListProperty(name="block_size")), 'keep_proba': Option(class_name='DropBlock', value=ProperFractionProperty(name="keep_proba")), 'name': Option(class_name='BaseLayer', value=Property(name="name"))}[source]
output(input, training=False)[source]