KittenDecoder.load constructor

KittenDecoder.load(
  1. Map<String, MlxArray> tensors, {
  2. String prefix = 'decoder',
  3. required ModelConfig config,
  4. bool activationQuant = false,
})

Implementation

factory KittenDecoder.load(
  Map<String, MlxArray> tensors, {
  String prefix = 'decoder',
  required ModelConfig config,
  bool activationQuant = false,
}) {
  return KittenDecoder(
    config: config,
    encode: AdainResBlk1d.load(
      tensors,
      '$prefix.encode',
      dimIn: config.hiddenDim + 2,
      dimOut: config.maxConvDim,
      styleDim: config.styleDim,
      quant: config.quantization,
      activationQuant: activationQuant,
    ),
    decode: List<AdainResBlk1d>.generate(
      4,
      (index) => AdainResBlk1d.load(
        tensors,
        '$prefix.decode.$index',
        dimIn: config.maxConvDim + 2 + config.asrResDim,
        dimOut:
            index == 3 ? config.resolvedDecoderOutDim : config.maxConvDim,
        styleDim: config.styleDim,
        upsample: index == 3,
        quant: config.quantization,
        activationQuant: activationQuant,
      ),
      growable: false,
    ),
    f0Conv: ConvWeighted.load(
      tensors,
      '$prefix.F0_conv',
      stride: 2,
      padding: 1,
      groups: 1,
      activationQuant: activationQuant,
    ),
    nConv: ConvWeighted.load(
      tensors,
      '$prefix.N_conv',
      stride: 2,
      padding: 1,
      groups: 1,
      activationQuant: activationQuant,
    ),
    asrRes: ConvWeighted.load(
      tensors,
      '$prefix.asr_res.0',
      padding: 0,
      activationQuant: activationQuant,
    ),
    generator: Generator.load(
      tensors,
      prefix: '$prefix.generator',
      config: config,
      activationQuant: activationQuant,
    ),
  );
}