private static void Oneoff(string cfgfile, string weightfile, string outfile) { CudaUtils.UseGpu = false; Network net = Parser.parse_network_cfg(cfgfile); int oldn = net.Layers[net.N - 2].N; int c = net.Layers[net.N - 2].C; net.Layers[net.N - 2].N = 9372; net.Layers[net.N - 2].BiasesIndex += 5; net.Layers[net.N - 2].WeightsIndex += 5 * c; if (!string.IsNullOrEmpty(weightfile)) { Parser.load_weights(net, weightfile); } net.Layers[net.N - 2].BiasesIndex -= 5; net.Layers[net.N - 2].WeightsIndex -= 5 * c; net.Layers[net.N - 2].N = oldn; Console.Write($"%d\n", oldn); Layer l = net.Layers[net.N - 2]; Blas.Copy_cpu(l.N / 3, l.BiasesComplete, l.BiasesComplete, l.BiasesIndex, l.BiasesIndex + l.N / 3); Blas.Copy_cpu(l.N / 3, l.BiasesComplete, l.BiasesComplete, l.BiasesIndex, l.BiasesIndex + 2 * l.N / 3); Blas.Copy_cpu(l.N / 3 * l.C, l.WeightsComplete, l.WeightsComplete, l.WeightsIndex, l.WeightsIndex + l.N / 3 * l.C); Blas.Copy_cpu(l.N / 3 * l.C, l.WeightsComplete, l.WeightsComplete, l.WeightsIndex, l.WeightsIndex + 2 * l.N / 3 * l.C); net.Seen = 0; Parser.save_weights(net, outfile); }