This release contains basic versions of TDNN and TDNN-F layers, with some constraints for the contexts.
Using the TDNN layer
from pytorch_tdnn.tdnn import TDNN as TDNNLayer
tdnn = TDNNLayer(
512, input dim
512, output dim
[-3,0,3], context
)
**Note:** The `context` list should follow these constraints:
* The length of the list should be 2 or an odd number.
* If the length is 2, it should be of the form `[-1,1]` or `[-3,3]`, but not
`[-1,3]`, for example.
* If the length is an odd number, they should be evenly spaced with a 0 in the
middle. For example, `[-3,0,3]` is allowed, but `[-3,-1,0,1,3]` is not.
Using the TDNNF layer
from pytorch_tdnn.tdnnf import TDNNF as TDNNFLayer
tdnn = TDNNFLayer(
512, input dim
512, output dim
256, bottleneck dim
1, time stride
)
**Note:** Time stride should be greater than or equal to 0. For example, if
the time stride is 1, a context of `[-1,1]` is used for each stage of splicing.
Credits
* The TDNN implementation is based on: https://github.com/jonasvdd/TDNN.
* Semi-orthogonal convolutions used in TDNN-F are based on: https://github.com/cvqluu/Factorized-TDNN.