WhisperDecoderBlock constructor

WhisperDecoderBlock(
  1. int embedDim,
  2. int numHeads, {
  3. Device device = Device.CPU,
})

Implementation

WhisperDecoderBlock(
  this.embedDim,
  this.numHeads, {
  Device device = Device.CPU,
}) : headDim = embedDim ~/ numHeads,
     attnLn = LayerNorm(embedDim, device: device),
     qHeads = _mkHeads(
       embedDim,
       numHeads,
       bias: true,
       seed: 100,
       device: device,
     ),
     kHeads = _mkHeads(
       embedDim,
       numHeads,
       bias: false,
       seed: 200,
       device: device,
     ),
     vHeads = _mkHeads(
       embedDim,
       numHeads,
       bias: true,
       seed: 300,
       device: device,
     ),
     outProj = Linear(embedDim, embedDim, bias: true, device: device),
     crossAttnLn = LayerNorm(embedDim, device: device),
     crossQHeads = _mkHeads(
       embedDim,
       numHeads,
       bias: true,
       seed: 400,
       device: device,
     ),
     crossKHeads = _mkHeads(
       embedDim,
       numHeads,
       bias: false,
       seed: 500,
       device: device,
     ),
     crossVHeads = _mkHeads(
       embedDim,
       numHeads,
       bias: true,
       seed: 600,
       device: device,
     ),
     crossOutProj = Linear(embedDim, embedDim, bias: true, device: device),
     mlpLn = LayerNorm(embedDim, device: device),
     mlp0 = Linear(embedDim, embedDim * 4, bias: true, device: device),
     mlp2 = Linear(embedDim * 4, embedDim, bias: true, device: device);