Conv2d constructor

Conv2d({
  1. required int inChannels,
  2. required int outChannels,
  3. required int kernelSize,
  4. int stride = 1,
  5. int padding = 0,
  6. bool useBias = true,
})

Implementation

Conv2d({
  required this.inChannels,
  required this.outChannels,
  required this.kernelSize,
  this.stride = 1,
  this.padding = 0,
  this.useBias = true,
}) {
  // Initialize filters (kernels) with small random values
  kernels = List.generate(outChannels, (i) {
    return Matrix2d(
        kernelSize,
        kernelSize,
        ValueVector(List.generate(kernelSize * kernelSize,
            (j) => Value(math.Random().nextDouble() * 0.1 - 0.05))));
  });

  // Initialize biases (if used)
  biases = ValueVector(List.generate(outChannels, (i) => Value(0)));
}