WeightBasis

class dgl.nn.pytorch.utils.WeightBasis(shape, num_bases, num_outputs)[source]

Bases: Module

Basis decomposition from Modeling Relational Data with Graph Convolutional Networks

It can be described as below:

\[W_o = \sum_{b=1}^B a_{ob} V_b\]

Each weight output \(W_o\) is essentially a linear combination of basis transformations \(V_b\) with coefficients \(a_{ob}\).

If is useful as a form of regularization on a large parameter matrix. Thus, the number of weight outputs is usually larger than the number of bases.

Parameters:
  • shape (tuple[int]) – Shape of the basis parameter.

  • num_bases (int) – Number of bases.

  • num_outputs (int) – Number of outputs.

forward()[source]

Forward computation

Returns:

weight – Composed weight tensor of shape (num_outputs,) + shape

Return type:

torch.Tensor