mindspore.ops.dropout2d

mindspore.ops.dropout2d(x, p=0.5)[source]

During training, randomly zeroes some channels of the input tensor with probability p from a Bernoulli distribution(For a 4-dimensional tensor with a shape of \(NCHW\), the channel feature map refers to a 2-dimensional feature map with the shape of \(HW\)).

For example, the \(j\_th\) channel of the \(i\_th\) sample in the batched input is a to-be-processed 2D tensor input[i,j]. Each channel will be zeroed out independently on every forward call which based on Bernoulli distribution probability p. The parper Dropout: A Simple Way to Prevent Neural Networks from Overfitting mentioned this technology,And it is proved that it can effectively reduce over fitting and prevent neuronal coadaptation. For more details, refer to Improving neural networks by preventing co-adaptation of feature detectors .

dropout2d can improve the independence between channel feature maps.

Parameters
  • x (Tensor) – A 4D tensor with shape \((N, C, H, W)\), where N is the batch size, C is the number of channels, H is the feature height, and W is the feature width. The data type must be int8, int16, int32, int64, float16, float32 or float64.

  • p (float) – The dropping probability of a channel, between 0 and 1, e.g. p = 0.8, which means dropping out 80% of channels. Default: 0.5.

Returns

Tensor, output, with the same shape and data type as x.

Tensor, mask, with the same shape as x and the data type is bool.

Raises
  • TypeError – If x is not a Tensor.

  • TypeError – If dtype of x is not int8, int16, int32, int64, float16, float32 or float64.

  • TypeError – If the data type of p is not float.

  • ValueError – If p is out of the range [0.0, 1.0].

  • ValueError – If x shape is not 4D.

Supported Platforms:

Ascend GPU CPU

Examples

>>> input_x = Tensor(np.ones([2, 1, 2, 3]), mindspore.float32)
>>> output, mask = dropout2d(input_x, 0.5)
>>> print(output.shape)
(2, 1, 2, 3)