SparseEmbedding

class SparseEmbedding(input_dim, output_dim, dtype='float32', weight_initializer=None, **kwargs)

Turns non-negative integers (indexes/tokens) into dense vectors of fixed size. eg. [4, 20] -> [[0.25, 0.1], [0.6, -0.2]]

This SparseBlock is designed for distributed training with extremely large input dimension. Both weight and gradient w.r.t. weight are RowSparseNDArray.

Note: if sparse_grad is set to True, the gradient w.r.t weight will be sparse. Only a subset of optimizers support sparse gradients, including SGD, AdaGrad and Adam. By default lazy updates is turned on, which may perform differently from standard updates. For more details, please check the Optimization API at: https://mxnet.incubator.apache.org/api/python/optimization/optimization.html

Parameters:
input_dim : int

Size of the vocabulary, i.e. maximum integer index + 1.

output_dim : int

Dimension of the dense embedding.

dtype : str or np.dtype, default ‘float32’

Data type of output embeddings.

weight_initializer : Initializer

Initializer for the embeddings matrix.

Inputs:
  • data: (N-1)-D tensor with shape: (x1, x2, …, xN-1).
Output:
  • out: N-D tensor with shape: (x1, x2, …, xN-1, output_dim).