WeightBasis

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

Bases: torch.nn.modules.module.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