mindsponge.cell.Transition

class mindsponge.cell.Transition(num_intermediate_factor, input_dim, batch_size=None, slice_num=0)[source]

This is 2-layer MLP where the intermediate layer expands number of channels of the input by a factor(num_intermediate_factor).

\[Transition(\mathbf{act}) = Linear(Linear(\mathbf{act}))\]
Parameters
  • num_intermediate_factor (float) – The expand factor of intermediate output channels compared to the input.

  • input_dim (int) – The channels of the input.

  • batch_size (int) – The batch size of parameters in Transition, used in while control flow. Default: “None”.

  • slice_num (int) – The slice num used in transition layer when the memory is overflow. Default: 0.

Inputs:
  • act (Tensor) - The input with channels equal to input_dim, shape is \((..., input\_dim)\).

  • index (Tensor) - The index of while loop, only used in case of while control flow. Default: “None”.

  • mask (Tensor) - The mask of act when to do layernorm with shape \((32, input_\dim)\), Default: “None”.

Outputs:

Tensor, the float tensor of the output of the layer with shape \((..., input\_dim)\).

Supported Platforms:

Ascend GPU

Examples

>>> import numpy as np
>>> from mindsponge.cell import Transition
>>> from mindspore import dtype as mstype
>>> from mindspore import Tensor
>>> model = Transition(num_intermediate_factor=4, input_dim=128)
>>> input = Tensor(np.ones((32, 128, 128)), mstype.float32)
>>> output= model(input)
>>> print(output.shape)
(32, 128, 128)