예제 #1
0
        public void FirstExecute()
        {
            ModelSetting instance = new ModelSetting();

            context.Setting.Add(instance);
            context.SaveChanges();
        }
예제 #2
0
        public void Import()
        {
            try
            {
                ModelSetting importingSetting = _rep.Setting.SingleOrDefault();
                CurrentAppTheme    = importingSetting.CurrentAppTheme;
                CurrentAppAccent   = importingSetting.CurrentAppAccent;
                PathToFolderFiles  = importingSetting.PathToFolderFiles;
                AllTimeOff         = importingSetting.AllTimeOff.Value.TimeOfDay;
                IsBackgroundImage  = importingSetting.IsBackgroundImage;
                IsTransperentTile  = importingSetting.IsTransperentTile;
                IsKioskMode        = importingSetting.IsKioskMode;
                PathToLicense      = importingSetting.PathToLicense;
                NumberLeftMonitor  = importingSetting.NumberLeftMonitor;
                NumberRightMonitor = importingSetting.NumberRightMonitor;
                TimeAdvertising    = importingSetting.TimeAdvertising.Value.TimeOfDay;

                if (IsBackgroundImage)
                {
                    App.MainWnd.Background = PersonalizationHelper.BitmapFromPath(App.PathToBackgroundImage);
                }

                PersonalizationHelper.SetStyleTile(IsTransperentTile);
            }
            catch (Exception ex)
            {
                App.SendException(ex);
            }
        }
        /// <summary>
        /// 拨号连接修改记录
        /// </summary>
        /// <param name="modelSetting">拨号连接实体类</param>
        /// <param name="where">修改时附加条件,统一的前面要加链接符(and、or等等)</param>
        /// <param name="delCache">修改成功后清理的CACHE key,支持正则</param>
        /// <param name="dbkey">存在数据库连接池中的连接key,为空时使用ConnString连接</param>
        /// <returns>修改是否成功</returns>
        public static bool Update(ModelSetting modelSetting, string dbkey = "", Where where = null, string[] delCache = null)
        {
            if (modelSetting.ModelID.IsNull())
            {
                return(false);
            }
            int value = new SQL().Database(dbkey).Update(ModelSetting._)
                        .SetP(ModelSetting._ModelName, modelSetting.ModelName)
                        .SetP(ModelSetting._UserName, modelSetting.UserName)
                        .SetP(ModelSetting._MPassword, modelSetting.MPassword)
                        .Where(new Where()
                               .AndP(ModelSetting._ModelID, modelSetting.ModelID, Operator.Equal, true)
                               ).Where(where).ToExec();

            if (value <= 0)
            {
                return(false);
            }
            if (delCache.IsNull())
            {
                return(true);
            }
            Cache2.Remove("TH.Mailer.ModelSettingCache_", delCache);
            return(true);
        }
예제 #4
0
        public static string Generate(ModelSetting setting)
        {
            var tab_builder = new StringBuilder(setting.TabSpace);

            for (var i = 0; i < setting.TabSpace; ++i)
            {
                tab_builder.Append(" ");
            }
            var tab   = tab_builder.ToString();
            var tab2x = tab + tab;

            var modelSummary = setting.UseSummary
                ? $"\r\n{GetSummaryString(setting.ModelSummary, tab)}"
                : string.Empty;

            var inherit = string.IsNullOrWhiteSpace(setting.Inherit)
                ? string.Empty
                : $" : {setting.Inherit}";

            return($@"{setting.Using}

namespace {setting.Namespace}
{{{modelSummary}
{tab}{setting.AccessModifier} class {setting.ModelName}{inherit}
{tab}{{
{GetColumnString(setting, tab2x)}
{tab}}}
}}");
        }
예제 #5
0
 public ViewModelSetting()
 {
     Model            = new ModelSetting();
     PortNamesCommand = new DelegateCommand
     {
         ExecuteCommand = new Action <object>(PortNamesCommandData)
     };
     SaveCommand = new DelegateCommand
     {
         ExecuteCommand = new Action <object>(SaveCommandData)
     };
 }
예제 #6
0
 private void frmRoute_Activated(object sender, EventArgs e)
 {
     frmMain.Instance.ShowStatusText("正在数据....");
     modelSetting = ModelSettingHelper.SelectByID(1);
     if (modelSetting.IsNull() || modelSetting.ModelID.IsNull())
     {
         return;
     }
     txtModelName.Text = modelSetting.ModelName;
     txtPassword.Text  = modelSetting.MPassword;
     txtUserName.Text  = modelSetting.UserName;
     frmMain.Instance.ShowStatusText("数据加载完成!");
 }
예제 #7
0
    public void Init(String modelJson)
    {
        updating    = true;
        initialized = false;

        modelSetting = new ModelSettingJson(modelJson);

        if (LAppDefine.DEBUG_LOG)
        {
            Debug.Log("Start to load model");
        }

        // Live2D Model
        if (modelSetting.GetModelFile() != null)
        {
            loadModelData(modelHomeDir + modelSetting.GetModelFile());

            var len = modelSetting.GetTextureNum();
            for (int i = 0; i < len; i++)
            {
                loadTexture(i, modelHomeDir + modelSetting.GetTextureFile(i));
            }
        }



        for (int i = 0; i < modelSetting.GetInitParamNum(); i++)
        {
            string id    = modelSetting.GetInitParamID(i);
            float  value = modelSetting.GetInitParamValue(i);
            live2DModel.setParamFloat(id, value);
        }

        for (int i = 0; i < modelSetting.GetInitPartsVisibleNum(); i++)
        {
            string id    = modelSetting.GetInitPartsVisibleID(i);
            float  value = modelSetting.GetInitPartsVisibleValue(i);
            live2DModel.setPartsOpacity(id, value);
        }



        view.SetupView(
            live2DModel.getCanvasWidth(),
            live2DModel.getCanvasHeight());

        updating    = false;
        initialized = true;
    }
        /// <summary>
        /// 拨号连接添加记录
        /// </summary>
        /// <param name="modelSetting">拨号连接实体类</param>
        /// <param name="delCache">添加成功后清理的CACHE key,支持正则</param>
        /// <param name="dbkey">存在数据库连接池中的连接key,为空时使用ConnString连接</param>
        /// <returns>添加是否成功</returns>
        public static bool Insert(ModelSetting modelSetting, string dbkey = "", string[] delCache = null)
        {
            int obj = new SQL().Database(dbkey).Insert(ModelSetting._)
                      .ValueP(ModelSetting._ModelID, modelSetting.ModelID)
                      .ValueP(ModelSetting._ModelName, modelSetting.ModelName)
                      .ValueP(ModelSetting._UserName, modelSetting.UserName)
                      .ValueP(ModelSetting._MPassword, modelSetting.MPassword)
                      .ToExec();

            if (delCache.IsNull())
            {
                return(obj == 1);
            }
            Cache2.Remove("TH.Mailer.ModelSettingCache_", delCache);
            return(obj == 1);
        }
        /// <summary>
        /// 拨号连接修改多条记录
        /// </summary>
        /// <param name="modelIDList">拨号连接编号列表,用“,”号分隔</param>
        /// <param name="modelSetting">拨号连接实体类</param>
        /// <param name="where">修改时附加条件,统一的前面要加链接符(and、or等等)</param>
        /// <param name="delCache">修改成功后清理的CACHE key,支持正则</param>
        /// <param name="dbkey">存在数据库连接池中的连接key,为空时使用ConnString连接</param>
        /// <returns>修改是否成功</returns>
        public static bool UpdateByIDList(IEnumerable <int> modelIDList, ModelSetting modelSetting, string dbkey = "", Where where = null, string[] delCache = null)
        {
            int value = new SQL().Database(dbkey).Update(ModelSetting._)
                        .SetP(ModelSetting._ModelName, modelSetting.ModelName)
                        .SetP(ModelSetting._UserName, modelSetting.UserName)
                        .SetP(ModelSetting._MPassword, modelSetting.MPassword)
                        .Where(new Where()
                               .And(ModelSetting._ModelID, "(" + modelIDList.Join(",") + ")", Operator.In)
                               ).Where(where).ToExec();

            if (value <= 0)
            {
                return(false);
            }
            if (delCache.IsNull())
            {
                return(true);
            }
            Cache2.Remove("TH.Mailer.ModelSettingCache_", delCache);
            return(true);
        }
예제 #10
0
        private void mnuEdit_Click(object sender, EventArgs e)
        {
            ModelSetting info = new ModelSetting();

            info.ModelName = txtModelName.Text;
            info.UserName  = txtUserName.Text;
            info.MPassword = txtPassword.Text;
            if (modelSetting.IsNull() || modelSetting.ModelID.IsNull())
            {
                info.ModelID = 1;
                ModelSettingHelper.Insert(info);
            }
            else
            {
                info.ModelID = modelSetting.ModelID;
                ModelSettingHelper.Update(info);
            }
            ModelSettingHelper.ClearCacheAll();

            MessageBox.Show("保存数据成功!", " 系统提示");
            this.Close();
        }
        protected override void Seed(DataBaseContext context)
        {
            base.Seed(context);
            ModelSetting instance = new ModelSetting()
            {
                CurrentAppTheme  = AppTheme.BaseDark,
                CurrentAppAccent = AccentTheme.Blue,
                AllTimeOff       = new DateTime(2000, 12, 12, 0, 0, 30),
                TimeAdvertising  = new DateTime(2000, 12, 12, 0, 0, 10)
            };

            context.Setting.Add(instance);

            ModelUser user = new ModelUser
            {
                Login    = "******",
                Password = Hesher.MD5Hash("123")
            };

            context.Users.Add(user);
            context.SaveChanges();
        }
예제 #12
0
        private static string GetColumnString(ModelSetting setting, string tab)
        {
            return(string.Join(@"

", setting.Columns.Select(e =>
            {
                var sb = new StringBuilder();
                if (setting.UseSummary)
                {
                    sb.AppendLine(GetSummaryString(e.Summary, tab));
                }
                if (setting.EnableSQLSugarSupport)
                {
                    //[SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnName = "")]
                    sb.Append($"{tab}[SugarColumn(ColumnName = \"{e.Name}\"");
                    sb.Append(SUGAR_COLUMN_SPLITOR);
                    if (e.IsPrimaryKey)
                    {
                        sb.Append($"IsPrimaryKey = true");
                        sb.Append(SUGAR_COLUMN_SPLITOR);
                    }
                    if (e.IsIdentity)
                    {
                        sb.Append($"IsIdentity = true");
                        sb.Append(SUGAR_COLUMN_SPLITOR);
                    }

                    sb.Remove(sb.Length - 2, 2);
                    sb.AppendLine(")]");
                }

                sb.Append($"{tab}public {GetType(e.Type, e.IsNullable)} {e.Name} {{ get; set; }}");

                return sb.ToString();
            })));
        }
예제 #13
0
    private void Init(string modelJson, string modelId)
    {
        modelSetting = new ModelSettingJson(modelJson);

        _baseDir = AssetLoader.GetLive2dDirById(modelId) + "/";

        // Live2D Model
        if (modelSetting.GetModelFile() != null)
        {
            loadModelData(_baseDir + modelSetting.GetModelFile());

            var len = modelSetting.GetTextureNum();
            for (int i = 0; i < len; i++)
            {
                loadTexture(i, _baseDir + modelSetting.GetTextureFile(i));
            }
        }

        string[] motionGroup = modelSetting.GetMotionGroupNames();

        for (int i = 0; i < motionGroup.Length; i++)
        {
            int num = modelSetting.GetMotionNum(motionGroup[i]);
            if (num != 0)
            {
                for (int j = 0; j < num; j++)
                {
                    _motionList.Add(modelSetting.GetMotionFile(motionGroup[i], j));
                }
            }
        }

        // Expression
        if (modelSetting.GetExpressionNum() != 0)
        {
            var len = modelSetting.GetExpressionNum();
            for (int i = 0; i < len; i++)
            {
                string name = modelSetting.GetExpressionName(i);
                loadExpression(name, _baseDir + modelSetting.GetExpressionFile(i));
                _expressionList.Add(name);
            }
        }

        // Physics
        if (modelSetting.GetPhysicsFile() != null)
        {
            loadPhysics(_baseDir + modelSetting.GetPhysicsFile());
        }

        // Pose
        if (modelSetting.GetPoseFile() != null)
        {
            loadPose(_baseDir + modelSetting.GetPoseFile());
        }

        for (int i = 0; i < modelSetting.GetInitParamNum(); i++)
        {
            string id    = modelSetting.GetInitParamID(i);
            float  value = modelSetting.GetInitParamValue(i);
            live2DModel.setParamFloat(id, value);
        }

        for (int i = 0; i < modelSetting.GetInitPartsVisibleNum(); i++)
        {
            string id    = modelSetting.GetInitPartsVisibleID(i);
            float  value = modelSetting.GetInitPartsVisibleValue(i);
            live2DModel.setPartsOpacity(id, value);
        }
    }
예제 #14
0
        private void GenerateFile()
        {
            if (SqlGeneratorSetting == null)
            {
                Alert.Error("请先连接数据库");
                return;
            }
            if (string.IsNullOrWhiteSpace(ComboBox_Database.Text))
            {
                Alert.Error("请先选择数据库并勾选需要生成的表单");
                return;
            }
            if (CheckedListBox_DataTable.CheckedItems.Count <= 0)
            {
                Alert.Error("请先勾选需要生成的表单");
                return;
            }
            if (string.IsNullOrWhiteSpace(TextBox_SaveLocation.Text) && !ChangeSavePath())
            {
                Alert.Error("请选择生成位置");
                return;
            }
            if (!Directory.Exists(TextBox_SaveLocation.Text))
            {
                Directory.CreateDirectory(TextBox_SaveLocation.Text);
            }

            using (var loadingForm = new WaitForm("正在生成", CheckedListBox_DataTable.CheckedItems.Count))
            {
                var database     = ComboBox_Database.Text;
                var modelSetting = new ModelSetting()
                {
                    Using                 = TextBox_Using.Text.Trim(),
                    Namespace             = TextBox_NameSpace.Text.Trim(),
                    TabSpace              = NumBox_TabSpace.Value.ToInt(),
                    AccessModifier        = ComboBox_AccessModifier.Text.Trim(),
                    Inherit               = TextBox_Inherit.Text.Trim(),
                    UseSummary            = CheckBox_UseSummary.Checked,
                    EnableSQLSugarSupport = ToolStripMenuItem_EnableSQLSugarDefaultSupport.Checked
                };
                var hasGenerateError = false;

                var thread = new Thread(() =>
                {
                    using (var uniGen = new UniversalGenerator(SqlGeneratorSetting))
                    {
                        if (!uniGen.TryGetConnection(out var message))
                        {
                            Alert.Error(message);
                            loadingForm.WorkComplete();
                            return;
                        }

                        for (int i = 0, showcount = 1; i < CheckedListBox_DataTable.CheckedItems.Count; ++i, ++showcount)
                        {
                            try
                            {
                                var modelName = CheckedListBox_DataTable.CheckedItems[i].ToString();

                                loadingForm.RefreshState(showcount, $"正在生成:\r\n{modelName}.cs");

                                modelSetting.ModelName    = modelName;
                                modelSetting.ModelSummary = $"Model: {modelName}";
                                modelSetting.Columns      = uniGen.GetColumns(database, modelName);

                                var generated_text = ModelGenerator.Generate(modelSetting);

                                using (var sw = new StreamWriter($"{TextBox_SaveLocation.Text}\\{modelName}.cs"))
                                {
                                    sw.Write(generated_text);
                                }
                            }
                            catch (Exception ex)
                            {
                                hasGenerateError = true;

                                var logFilePath = $"{TextBox_SaveLocation.Text}\\error.log";

                                if (!File.Exists(logFilePath))
                                {
                                    var fs = File.Create(logFilePath);
                                    fs.Dispose();
                                }
                                using (var sw = new StreamWriter(logFilePath, true))
                                {
                                    sw.WriteLine($@"=== Exception log {DateTime.Now:yyyy-MM-dd hh:mm:ss} BEGINS ===

Exception message:
{ex.Message}

Exception stack trace:
{ex.StackTrace}

=== Exception log ENDS ===");
                                }
                            }
                        }
                    }

                    loadingForm.WorkComplete();
                })
                {
                    IsBackground = true
                };

                loadingForm.StartWork(thread);

                if (hasGenerateError)
                {
                    Alert.Warning("生成已完成,但出现错误,错误报告已生成在与实体类相同的目录下");
                }
                else
                {
                    Alert.Info("生成已完成");
                }
            }
        }
예제 #15
0
    /*
     * 初始化模型
     * @throws Exception
     */
    public void Init(String modelJson)
    {
        updating    = true;
        initialized = false;

        modelSetting = new ModelSettingJson(modelJson);

        if (LAppDefine.DEBUG_LOG)
        {
            Debug.Log("Start to load model");
        }

        // Live2D Model
        if (modelSetting.GetModelFile() != null)
        {
            loadModelData(modelHomeDir + modelSetting.GetModelFile());

            var len = modelSetting.GetTextureNum();
            Debug.Log(len);
            for (int i = 0; i < len; i++)
            {
                loadTexture(i, modelHomeDir + modelSetting.GetTextureFile(i));
            }
        }

        // Expression
        if (modelSetting.GetExpressionNum() != 0)
        {
            var len = modelSetting.GetExpressionNum();
            for (int i = 0; i < len; i++)
            {
                loadExpression(modelSetting.GetExpressionName(i), modelHomeDir + modelSetting.GetExpressionFile(i));
            }
        }

        // Physics
        if (modelSetting.GetPhysicsFile() != null)
        {
            loadPhysics(modelHomeDir + modelSetting.GetPhysicsFile());
        }

        // Pose
        if (modelSetting.GetPoseFile() != null)
        {
            loadPose(modelHomeDir + modelSetting.GetPoseFile());
        }

        // 由于布局可以在Unity上设置,因此不会从JSON中读取
        //Dictionary<string, float> layout = new Dictionary<string, float>();
        //if (modelSetting.GetLayout(layout))
        //{
        //    if (layout.ContainsKey("width")) modelMatrix.setWidth(layout["width"]);
        //    if (layout.ContainsKey("height")) modelMatrix.setHeight(layout["height"]);
        //    if (layout.ContainsKey("x")) modelMatrix.setX(layout["x"]);
        //    if (layout.ContainsKey("y")) modelMatrix.setY(layout["y"]);
        //    if (layout.ContainsKey("center_x")) modelMatrix.centerX(layout["center_x"]);
        //    if (layout.ContainsKey("center_y")) modelMatrix.centerY(layout["center_y"]);
        //    if (layout.ContainsKey("top")) modelMatrix.top(layout["top"]);
        //    if (layout.ContainsKey("bottom")) modelMatrix.bottom(layout["bottom"]);
        //    if (layout.ContainsKey("left")) modelMatrix.left(layout["left"]);
        //    if (layout.ContainsKey("right")) modelMatrix.right(layout["right"]);
        //}


        // 初始参数
        for (int i = 0; i < modelSetting.GetInitParamNum(); i++)
        {
            string id    = modelSetting.GetInitParamID(i);
            float  value = modelSetting.GetInitParamValue(i);
            live2DModel.setParamFloat(id, value);
        }

        for (int i = 0; i < modelSetting.GetInitPartsVisibleNum(); i++)
        {
            string id    = modelSetting.GetInitPartsVisibleID(i);
            float  value = modelSetting.GetInitPartsVisibleValue(i);
            live2DModel.setPartsOpacity(id, value);
        }

        // 自动捕眼器
        eyeBlink = new L2DEyeBlink();

        view.SetupView(
            live2DModel.getCanvasWidth(),
            live2DModel.getCanvasHeight());

        updating    = false; // 更新状態の完了
        initialized = true;  // 初期化完了
    }
예제 #16
0
        private static void Train()
        {
            Logger.LogFile = "RNNSharpConsole.log";

            if (File.Exists(strTagFile) == false)
            {
                Logger.WriteLine(Logger.Level.err, "FAILED: The tag mapping file {0} isn't existed.", strTagFile);
                UsageTrain();
                return;
            }

            //Load tag id and its name from file
            TagSet tagSet = new TagSet(strTagFile);

            //Create configuration instance and set parameters
            ModelSetting RNNConfig = new ModelSetting();

            RNNConfig.TagFile             = strTagFile;
            RNNConfig.Tags                = tagSet;
            RNNConfig.ModelFile           = strModelFile;
            RNNConfig.HiddenLayerSizeList = hiddenLayerSizeList;
            RNNConfig.IsCRFTraining       = (iCRF == 1) ? true : false;
            RNNConfig.ModelDirection      = iDir;
            RNNConfig.VQ              = iVQ;
            RNNConfig.ModelType       = ParseLayerType(hiddenLayerType);
            RNNConfig.OutputLayerType = ParseLayerType(outputLayerType);
            RNNConfig.MaxIteration    = maxIter;
            RNNConfig.SaveStep        = savestep;
            RNNConfig.LearningRate    = alpha;
            RNNConfig.Dropout         = dropout;
            RNNConfig.Bptt            = bptt;
            RNNConfig.GradientCutoff  = gradientCutoff;
            RNNConfig.NCESampleSize   = nceSampleSize;

            //Dump RNN setting on console
            RNNConfig.DumpSetting();

            if (File.Exists(strFeatureConfigFile) == false)
            {
                Logger.WriteLine(Logger.Level.err, "FAILED: The feature configuration file {0} doesn't exist.", strFeatureConfigFile);
                UsageTrain();
                return;
            }
            //Create feature extractors and load word embedding data from file
            Featurizer featurizer = new Featurizer(strFeatureConfigFile, tagSet);

            featurizer.ShowFeatureSize();

            if (featurizer.IsRunTimeFeatureUsed() == true && iDir == 1)
            {
                Logger.WriteLine(Logger.Level.err, "FAILED: Run time feature is not available for bi-directional RNN model.");
                UsageTrain();
                return;
            }

            if (File.Exists(strTrainFile) == false)
            {
                Logger.WriteLine(Logger.Level.err, "FAILED: The training corpus doesn't exist.");
                UsageTrain();
                return;
            }

            //Create RNN encoder and save necessary parameters
            RNNEncoder encoder = new RNNEncoder(RNNConfig);

            //LoadFeatureConfig training corpus and extract feature set
            encoder.TrainingSet = new DataSet(tagSet.GetSize());
            LoadDataset(strTrainFile, featurizer, encoder.TrainingSet);
            RNNConfig.TrainDataSet = encoder.TrainingSet;

            if (String.IsNullOrEmpty(strValidFile) == false)
            {
                //LoadFeatureConfig validated corpus and extract feature set
                Logger.WriteLine("Loading validated corpus from {0}", strValidFile);
                encoder.ValidationSet = new DataSet(tagSet.GetSize());
                LoadDataset(strValidFile, featurizer, encoder.ValidationSet);
            }
            else
            {
                Logger.WriteLine("Validated corpus isn't specified.");
                encoder.ValidationSet = null;
            }

            if (iCRF == 1)
            {
                Logger.WriteLine("Initialize output tag bigram transition probability...");
                //Build tag bigram transition matrix
                encoder.TrainingSet.BuildLabelBigramTransition();
            }

            //Start to train the model
            encoder.Train();
        }
예제 #17
0
        private static void Train()
        {
            Logger.LogFile = "RNNSharpConsole.log";

            if (File.Exists(tagFilePath) == false)
            {
                Logger.WriteLine(Logger.Level.err, $"FAILED: The tag mapping file {tagFilePath} doesn't exist.");
                UsageTrain();
                return;
            }

            //Load tag id and its name from file
            var tagSet = new TagSet(tagFilePath);

            //Create configuration instance and set parameters
            var RNNConfig = new ModelSetting
            {
                VQ             = iVQ,
                MaxIteration   = maxIter,
                SaveStep       = savestep,
                LearningRate   = alpha,
                GradientCutoff = gradientCutoff,
                IsConstAlpha   = constAlpha
            };

            //Dump RNN setting on console
            RNNConfig.DumpSetting();

            if (File.Exists(configFilePath) == false)
            {
                Logger.WriteLine(Logger.Level.err, "FAILED: The feature configuration file {0} doesn't exist.",
                                 configFilePath);
                UsageTrain();
                return;
            }
            //Create feature extractors and load word embedding data from file
            var config = new Config(configFilePath, tagSet);

            config.ShowFeatureSize();

            if (File.Exists(trainFilePath) == false)
            {
                Logger.WriteLine(Logger.Level.err, "FAILED: The training corpus doesn't exist.");
                UsageTrain();
                return;
            }

            if (config.ModelType == MODELTYPE.SeqLabel)
            {
                //Create RNN encoder and save necessary parameters
                var encoder = new RNNEncoder <Sequence>(RNNConfig, config)
                {
                    TrainingSet = new DataSet <Sequence>(tagSet.GetSize())
                };

                //LoadFeatureConfig training corpus and extract feature set
                LoadDataset(trainFilePath, config, encoder.TrainingSet);

                if (string.IsNullOrEmpty(validFilePath) == false)
                {
                    //LoadFeatureConfig validated corpus and extract feature set
                    Logger.WriteLine("Loading validated corpus from {0}", validFilePath);
                    encoder.ValidationSet = new DataSet <Sequence>(tagSet.GetSize());
                    LoadDataset(validFilePath, config, encoder.ValidationSet);
                }
                else
                {
                    Logger.WriteLine("Validated corpus isn't specified.");
                    encoder.ValidationSet = null;
                }

                if (encoder.IsCRFTraining)
                {
                    Logger.WriteLine("Initialize output tag bigram transition probability...");
                    //Build tag bigram transition matrix
                    encoder.TrainingSet.BuildLabelBigramTransition();
                }

                //Start to train the model
                encoder.Train();
            }
            else
            {
                //Create RNN encoder and save necessary parameters
                var encoder = new RNNEncoder <SequencePair>(RNNConfig, config)
                {
                    TrainingSet = new DataSet <SequencePair>(tagSet.GetSize())
                };

                //LoadFeatureConfig training corpus and extract feature set

                LoadSeq2SeqDataSet(trainFilePath, config, encoder.TrainingSet);

                if (string.IsNullOrEmpty(validFilePath) == false)
                {
                    //LoadFeatureConfig validated corpus and extract feature set
                    Logger.WriteLine("Loading validated corpus from {0}", validFilePath);
                    encoder.ValidationSet = new DataSet <SequencePair>(tagSet.GetSize());
                    LoadSeq2SeqDataSet(validFilePath, config, encoder.ValidationSet);
                }
                else
                {
                    Logger.WriteLine("Validated corpus isn't specified.");
                    encoder.ValidationSet = null;
                }

                if (encoder.IsCRFTraining)
                {
                    Logger.WriteLine("Initialize output tag bigram transition probability...");
                    //Build tag bigram transition matrix
                    encoder.TrainingSet.BuildLabelBigramTransition();
                }

                //Start to train the model
                encoder.Train();
            }
        }
 public void Init(string modelJson)
 {
     base.updating = true;
     base.initialized = false;
     this.modelSetting = new ModelSettingJson(modelJson);
     if (LAppDefine.DEBUG_LOG)
     {
         Debug.Log("Start to load model");
     }
     if (this.modelSetting.GetModelFile() != null)
     {
         base.loadModelData(this.modelHomeDir + this.modelSetting.GetModelFile());
         int textureNum = this.modelSetting.GetTextureNum();
         for (int k = 0; k < textureNum; k++)
         {
             base.loadTexture(k, this.modelHomeDir + this.modelSetting.GetTextureFile(k));
         }
     }
     if (this.modelSetting.GetExpressionNum() != 0)
     {
         int expressionNum = this.modelSetting.GetExpressionNum();
         for (int m = 0; m < expressionNum; m++)
         {
             base.loadExpression(this.modelSetting.GetExpressionName(m), this.modelHomeDir + this.modelSetting.GetExpressionFile(m));
         }
     }
     if (this.modelSetting.GetPhysicsFile() != null)
     {
         base.loadPhysics(this.modelHomeDir + this.modelSetting.GetPhysicsFile());
     }
     if (this.modelSetting.GetPoseFile() != null)
     {
         base.loadPose(this.modelHomeDir + this.modelSetting.GetPoseFile());
     }
     for (int i = 0; i < this.modelSetting.GetInitParamNum(); i++)
     {
         string initParamID = this.modelSetting.GetInitParamID(i);
         float initParamValue = this.modelSetting.GetInitParamValue(i);
         base.live2DModel.setParamFloat(initParamID, initParamValue);
     }
     for (int j = 0; j < this.modelSetting.GetInitPartsVisibleNum(); j++)
     {
         string initPartsVisibleID = this.modelSetting.GetInitPartsVisibleID(j);
         float initPartsVisibleValue = this.modelSetting.GetInitPartsVisibleValue(j);
         base.live2DModel.setPartsOpacity(initPartsVisibleID, initPartsVisibleValue);
     }
     base.eyeBlink = new L2DEyeBlink();
     this.view.SetupView(base.live2DModel.getCanvasWidth(), base.live2DModel.getCanvasHeight());
     base.updating = false;
     base.initialized = true;
 }
예제 #19
0
    public void Initialize(L2DModelInfo modelInfo, int modelSlotIdx)
    {
        setUpdating(true);  // 모델 갱신중
        setInitialized(false);

        _IsActivate     = true;
        _modelHomeDir   = FileManager.getDirName(modelInfo._SettingFullPath);
        _modelRenderPos = new Vector3(modelSlotIdx * 5.0f, 60.0f, 0.0f);

        GameObject proxyObj = new GameObject(modelInfo._modelName);

        _proxy = proxyObj.AddComponent <L2DModelProxy>();
        _proxy.Initialize(this, modelInfo._planeSize, _modelRenderPos);

        string modelJson = Live2DFramework.getPlatformManager().loadString(modelInfo._SettingFullPath);

        _modelSetting = new ModelSettingJson(modelJson);
        startTimeMSec = UtSystem.getUserTimeMSec();
        _updatedOnce  = false;

        // Live2D Model
        if (_modelSetting.GetModelFile() != null)
        {
            loadModelData(_modelHomeDir + _modelSetting.GetModelFile());

            var len = _modelSetting.GetTextureNum();
            for (int i = 0; i < len; i++)
            {
                loadTexture(i, _modelHomeDir + _modelSetting.GetTextureFile(i));
            }
        }

        // 모션은 미리 읽지 않고 각 모션 재생 시도 시 읽어들임

        // Expression
        if (_modelSetting.GetExpressionNum() != 0)
        {
            var len = _modelSetting.GetExpressionNum();
            for (int i = 0; i < len; i++)
            {
                loadExpression(_modelSetting.GetExpressionName(i), _modelHomeDir + _modelSetting.GetExpressionFile(i));
            }
        }

        // Physics
        if (_modelSetting.GetPhysicsFile() != null)
        {
            loadPhysics(_modelHomeDir + _modelSetting.GetPhysicsFile());
        }

        // Pose
        if (_modelSetting.GetPoseFile() != null)
        {
            loadPose(_modelHomeDir + _modelSetting.GetPoseFile());
        }

        // 파라미터 초기값
        for (int i = 0; i < _modelSetting.GetInitParamNum(); i++)
        {
            string id    = _modelSetting.GetInitParamID(i);
            float  value = _modelSetting.GetInitParamValue(i);
            live2DModel.setParamFloat(id, value);
        }

        // 파츠
        for (int i = 0; i < _modelSetting.GetInitPartsVisibleNum(); i++)
        {
            string id    = _modelSetting.GetInitPartsVisibleID(i);
            float  value = _modelSetting.GetInitPartsVisibleValue(i);
            live2DModel.setPartsOpacity(id, value);
        }

        // 눈 자동깜빡임
        eyeBlink = new L2DEyeBlink();

        // 레이아웃. 적용 순서에 따라 결과 달라짐에 주의
        getModelMatrix().multScale(modelInfo._layout._scale, modelInfo._layout._scale);
        getModelMatrix().setY(modelInfo._layout._y);

        setUpdating(false); // 갱신상태 완료
        setInitialized(true);
    }
예제 #20
0
 /// <summary>
 /// 拨号连接添加记录
 /// </summary>
 /// <param name="modelSetting">拨号连接实体类</param>
 /// <returns>添加是否成功</returns>
 public static bool Insert(ModelSetting modelSetting, string dbkey)
 {
     return(Insert(modelSetting, dbkey, null));
 }
예제 #21
0
        private IEnumerable <string> CreateTypeProperties(string separator, IEnumerable <Type> types)
        {
            types.CheckArgument(nameof(types));

            var result = new List <string>();

            foreach (var type in types)
            {
                var entityName  = CreateEntityNameFromInterface(type);
                var categoryKey = $"{SolutionProperties.SolutionName}{separator}{entityName}";

                if (result.Any(e => e.StartsWith(categoryKey)) == false)
                {
                    var dialogOptions = new DialogOptions()
                    {
                        ShowTitle = true,
                        ShowClose = true,
                        Left      = string.Empty,
                        Top       = string.Empty,
                        Bottom    = string.Empty,
                        Width     = "800px",
                        Height    = string.Empty,
                    };
                    var modelSetting           = new ModelSetting();
                    var dataGridSetting        = new DataGridSetting();
                    var dataGridHandlerSetting = new DataGridHandlerSetting();

                    result.Add($"{categoryKey}{separator}Setting{separator}{separator}{JsonSerializer.Serialize<ModelSetting>(modelSetting)}");
                    result.Add($"{categoryKey}DataGrid{separator}Setting{separator}{separator}{JsonSerializer.Serialize<DataGridSetting>(dataGridSetting)}");
                    result.Add($"{categoryKey}DataGrid{separator}HandlerSetting{separator}{separator}{JsonSerializer.Serialize<DataGridHandlerSetting>(dataGridHandlerSetting)}");
                    result.Add($"{categoryKey}DataGrid{separator}EditOptions{separator}{separator}{JsonSerializer.Serialize<DialogOptions>(dialogOptions)}");
                    result.Add($"{categoryKey}DataGrid{separator}DeleteOptions{separator}{separator}{JsonSerializer.Serialize<DialogOptions>(dialogOptions)}");

                    var contractHelper = new ContractHelper(type);
                    var relations      = contractHelper.GetDetailTypes(types);

                    if (relations.Any())
                    {
                        foreach (var relation in relations)
                        {
                            var detailEntityName = CreateEntityNameFromInterface(relation.To);

                            //result.Add($"{categoryKey}{detailEntityName}DataGrid{separator}Setting{separator}{separator}{JsonSerializer.Serialize<DataGridSetting>(dataGridSetting)}");
                        }
                    }
                }
                foreach (var pi in type.GetAllPropertyInfos())
                {
                    var fullKey = $"{categoryKey}{separator}{pi.Name}{separator}";

                    if (result.Any(e => e.StartsWith(fullKey)) == false)
                    {
                        var propertyHelper = new ContractPropertyHelper(pi);
                        var displaySetting = new DisplaySetting()
                        {
                            ScaffoldItem   = true,
                            IsModelItem    = false,
                            ReadonlyMode   = GetReadonlyMode(propertyHelper),
                            VisibilityMode = GetVisibilityMode(propertyHelper),
                            ListSortable   = true,
                            ListFilterable = true,
                            ListWidth      = GetListWitdh(propertyHelper),
                            FormatValue    = GetFormatValue(propertyHelper),
                            Order          = 10_000,
                        };
                        result.Add($"{fullKey}{separator}{JsonSerializer.Serialize<DisplaySetting>(displaySetting)}");
                    }
                }
            }
            return(result);
        }
예제 #22
0
 public ModelController()
 {
     setting = ModelSettingHelper.SelectByID(1);
 }
예제 #23
0
 /// <summary>
 /// 拨号连接修改多条记录
 /// </summary>
 /// <param name="modelIDList">拨号连接编号列表,用“,”号分隔</param>
 /// <param name="modelSetting">拨号连接实体类</param>
 /// <returns>修改是否成功</returns>
 public static bool UpdateByIDList(IEnumerable <int> modelIDList, ModelSetting modelSetting, string dbkey)
 {
     return(UpdateByIDList(modelIDList, modelSetting, dbkey, null, null));
 }
예제 #24
0
    public void Init(String modelJson)
    {
        updating = true;
        initialized = false;

        modelSetting = new ModelSettingJson(modelJson);

        if (LAppDefine.DEBUG_LOG) Debug.Log("Start to load model");

        // Live2D Model
        if (modelSetting.GetModelFile() != null)
        {
            loadModelData(modelHomeDir + modelSetting.GetModelFile());

            ((Live2DModelUnity)live2DModel).setRenderMode (Live2D.L2D_RENDER_DRAW_MESH);
            var len = modelSetting.GetTextureNum();
            for (int i = 0; i < len; i++)
            {
                loadTexture(i, modelHomeDir + modelSetting.GetTextureFile(i));
            }
        }

        // Expression
        if (modelSetting.GetExpressionNum() != 0)
        {
            var len = modelSetting.GetExpressionNum();
            for (int i = 0; i < len; i++)
            {
                loadExpression(modelSetting.GetExpressionName(i), modelHomeDir + modelSetting.GetExpressionFile(i));
            }
        }

        // Physics
        if (modelSetting.GetPhysicsFile()!=null)
        {
            loadPhysics(modelHomeDir + modelSetting.GetPhysicsFile());
        }

        // Pose
        if (modelSetting.GetPoseFile()!=null)
        {
            loadPose(modelHomeDir + modelSetting.GetPoseFile());
        }

        //Dictionary<string, float> layout = new Dictionary<string, float>();
        //if (modelSetting.GetLayout(layout))
        //{
        //    if (layout.ContainsKey("width")) modelMatrix.setWidth(layout["width"]);
        //    if (layout.ContainsKey("height")) modelMatrix.setHeight(layout["height"]);
        //    if (layout.ContainsKey("x")) modelMatrix.setX(layout["x"]);
        //    if (layout.ContainsKey("y")) modelMatrix.setY(layout["y"]);
        //    if (layout.ContainsKey("center_x")) modelMatrix.centerX(layout["center_x"]);
        //    if (layout.ContainsKey("center_y")) modelMatrix.centerY(layout["center_y"]);
        //    if (layout.ContainsKey("top")) modelMatrix.top(layout["top"]);
        //    if (layout.ContainsKey("bottom")) modelMatrix.bottom(layout["bottom"]);
        //    if (layout.ContainsKey("left")) modelMatrix.left(layout["left"]);
        //    if (layout.ContainsKey("right")) modelMatrix.right(layout["right"]);
        //}

        for (int i = 0; i < modelSetting.GetInitParamNum(); i++)
        {
            string id = modelSetting.GetInitParamID(i);
            float value = modelSetting.GetInitParamValue(i);
            live2DModel.setParamFloat(id, value);
        }

        for (int i = 0; i < modelSetting.GetInitPartsVisibleNum(); i++)
        {
            string id = modelSetting.GetInitPartsVisibleID(i);
            float value = modelSetting.GetInitPartsVisibleValue(i);
            live2DModel.setPartsOpacity(id, value);
        }

        eyeBlink = new L2DEyeBlink();

        view.SetupView(
            live2DModel.getCanvasWidth(),
            live2DModel.getCanvasHeight());

        updating = false;
        initialized = true;

        GetLive2DModelUnity ().setRenderMode (Live2D.L2D_RENDER_DRAW_MESH);

        //		int max = modelSetting.GetMotionNum ("normal");
        //		for (int i = 0; i < max; ++i) {
        //		}

        //		currentAnimIndex = -1;
        //		StartMotion("normal", currentAnimIndex, LAppDefine.PRIORITY_NORMAL);
    }
예제 #25
0
 /// <summary>
 /// 拨号连接修改记录
 /// </summary>
 /// <param name="modelSetting">拨号连接实体类</param>
 /// <returns>修改是否成功</returns>
 public static bool Update(ModelSetting modelSetting, string dbkey)
 {
     return(Update(modelSetting, dbkey, null, null));
 }
예제 #26
0
    public void load(string modelSettingPath)
    {
        updating    = true;
        initialized = false;

        if (modelJson == null && modelSettingPath != null)
        {
            if (LAppDefine.DEBUG_LOG)
            {
                Debug.Log("Load json : " + modelSettingPath);
            }
            try{
                TextAsset ta = (Resources.Load(modelSettingPath, typeof(TextAsset)) as TextAsset);
                modelSetting = new ModelSettingJson(ta);
            }
            catch (IOException e)
            {
                Debug.Log(e.StackTrace);


                throw new Exception();
            }
        }
        else
        {
            if (LAppDefine.DEBUG_LOG)
            {
                Debug.Log("Load json");
            }
            modelSetting = new ModelSettingJson(modelJson);
        }

        if (LAppDefine.DEBUG_LOG)
        {
            Debug.Log("Start to load model");
        }



        loadModelData(modelSetting.getModelFile(), modelSetting.getTextureFiles());


        loadExpressions(modelSetting.getExpressionNames(), modelSetting.getExpressionFiles());


        loadPhysics(modelSetting.getPhysicsFile());


        loadPose(modelSetting.getPoseFile());


        Dictionary <string, float> layout = new Dictionary <string, float>();

        if (modelSetting.getLayout(layout))
        {
            if (layout.ContainsKey("width"))
            {
                modelMatrix.setWidth(layout["width"]);
            }
            if (layout.ContainsKey("height"))
            {
                modelMatrix.setHeight(layout["height"]);
            }
            if (layout.ContainsKey("x"))
            {
                modelMatrix.setX(layout["x"]);
            }
            if (layout.ContainsKey("y"))
            {
                modelMatrix.setY(layout["y"]);
            }
            if (layout.ContainsKey("center_x"))
            {
                modelMatrix.centerX(layout["center_x"]);
            }
            if (layout.ContainsKey("center_y"))
            {
                modelMatrix.centerY(layout["center_y"]);
            }
            if (layout.ContainsKey("top"))
            {
                modelMatrix.top(layout["top"]);
            }
            if (layout.ContainsKey("bottom"))
            {
                modelMatrix.bottom(layout["bottom"]);
            }
            if (layout.ContainsKey("left"))
            {
                modelMatrix.left(layout["left"]);
            }
            if (layout.ContainsKey("right"))
            {
                modelMatrix.right(layout["right"]);
            }
        }



        for (int i = 0; i < modelSetting.getInitParamNum(); i++)
        {
            string id    = modelSetting.getInitParamID(i);
            float  value = modelSetting.getInitParamValue(i);
            live2DModel.setParamFloat(id, value);
        }

        for (int i = 0; i < modelSetting.getInitPartsVisibleNum(); i++)
        {
            string id    = modelSetting.getInitPartsVisibleID(i);
            float  value = modelSetting.getInitPartsVisibleValue(i);
            live2DModel.setPartsOpacity(id, value);
        }


        eyeBlink = new L2DEyeBlink();


        view.setupView(
            live2DModel.getCanvasWidth(),
            live2DModel.getCanvasHeight());


        updating    = false;
        initialized = true;
    }