public static Optimizer[][,,] InitializeKernelOptimizers( int depth, int numberOfkernels, int kernelSize, Optimizer optimizer) { var optimizers = new Optimizer[numberOfkernels][, , ]; optimizers.UpdateForEach <Optimizer[, , ]>(q => new Optimizer[depth, kernelSize, kernelSize]); optimizers.ForEach(q => q.UpdateForEach <Optimizer>(w => optimizer.Clone() as Optimizer)); return(optimizers); }