Example #1
0
        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);
        }