WhisperDecoderBlock constructor
WhisperDecoderBlock(
- int embedDim,
- int numHeads, {
- 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);