Exemplo n.º 1
0
        public override void ModelInit_FromConfig()
        {
            if (!ParameterSetting.ISSEED)
            {
                DNN_Query = new DNN(ParameterSetting.FEATURE_DIMENSION_QUERY,
                                    ParameterSetting.SOURCE_LAYER_DIM,
                                    ParameterSetting.SOURCE_ACTIVATION,
                                    ParameterSetting.SOURCE_LAYERWEIGHT_SIGMA,
                                    ParameterSetting.SOURCE_ARCH,
                                    ParameterSetting.SOURCE_ARCH_WIND,
                                    false);

                if (ParameterSetting.IS_SHAREMODEL)
                {
                    DNN_Doc = DNN_Query;
                }
                else
                {
                    DNN_Doc = new DNN(ParameterSetting.FEATURE_DIMENSION_DOC,
                                      ParameterSetting.TARGET_LAYER_DIM,
                                      ParameterSetting.TARGET_ACTIVATION,
                                      ParameterSetting.TARGET_LAYERWEIGHT_SIGMA,
                                      ParameterSetting.TARGET_ARCH,
                                      ParameterSetting.TARGET_ARCH_WIND,
                                      false);
                }

                DNN_Query.Init();

                if (!ParameterSetting.IS_SHAREMODEL)
                {
                    if (ParameterSetting.MIRROR_INIT)
                    {
                        DNN_Doc.Init(DNN_Query);
                    }
                    else
                    {
                        DNN_Doc.Init();
                    }
                }
                ParameterSetting.FEATURE_DIMENSION_QUERY = DNN_Query.neurallayers[0].Number;
                ParameterSetting.FEATURE_DIMENSION_DOC   = DNN_Doc.neurallayers[0].Number;
            }
            else
            {
                LoadModel(ParameterSetting.SEEDMODEL1, ref DNN_Query, ParameterSetting.SEEDMODEL2, ref DNN_Doc, true);
            }

            Program.Print("Source Neural Network Structure " + DNN_Query.DNN_Descr());
            Program.Print("Target Neural Network Structure " + DNN_Doc.DNN_Descr());
            Program.Print("Feature Num Query " + ParameterSetting.FEATURE_DIMENSION_QUERY.ToString());
            Program.Print("Feature Num Doc " + ParameterSetting.FEATURE_DIMENSION_DOC.ToString());
            Program.Print("Sharing Model " + ParameterSetting.IS_SHAREMODEL.ToString());
            Program.Print("Mirror Init Model " + ParameterSetting.MIRROR_INIT.ToString());
            Program.Print("Math Lib " + ParameterSetting.MATH_LIB.ToString());
            if (ParameterSetting.MATH_LIB == MathLibType.cpu)
            {
                Program.Print("CPU Math thread num " + ParameterSetting.BasicMathLibThreadNum.ToString());
            }
        }