示例#1
0
        public static bool InitCaptcha(string prototxtPath, string modelPath, string mapPath, int gpuId, int batchSize)
        {
            byte[] deploy = Util.GetFileStream(prototxtPath);
            byte[] model  = Util.GetFileStream(modelPath);
            CC.taskPool = CC.CreateTaskPoolByData(deploy, deploy.Length, model, model.Length, 1F, "", 0, 0F, gpuId, batchSize);
            CC.prototxt = System.Text.Encoding.Default.GetString(deploy);
            string[] mapFile = Util.LoadStringFromFile(mapPath).Trim().Split("\r\n".ToArray());
            CC.map = new ArrayList();
            for (int i = 0; i < mapFile.Length; i++)
            {
                if (mapFile[i].Length > 0)
                {
                    CC.map.Add(mapFile[i]);
                }
            }
            string time_step     = Util.GetMiddleString(CC.prototxt, "time_step:", "b").Trim();
            string layer         = Util.GetMiddleString(CC.prototxt, "inner_product_param {", "{");
            string alphabet_size = Util.GetMiddleString(layer, "num_output:", "p").Trim();

            CC.timeStep     = int.Parse(time_step);
            CC.alphabetSize = int.Parse(alphabet_size);
            return(CC.taskPool != 0);
        }