コード例 #1
0
ファイル: ViewHPageVm.cs プロジェクト: tp-nscan/HopAlong
        void InitUi()
        {
            var scse = (SimUtils.SimCliqueSetForEpoch)AppVm.Sim;
            var m = scse.CliqueNetworkTr.NodeGroups;

            CliqueEConfigVm = new CliqueEConfigVm
                (
                    gain: scse.UpdateParams.Gain,
                    stepSize: scse.UpdateParams.StepSize,
                    noiseLevel: scse.UpdateParams.NoiseLevel,
                    reportFreq: scse.UpdateParams.Epochs
                );

            NodeCount = m.RowCount;
            GroupCount = m.ColumnCount;
            MemCount = scse.Memories.ColumnCount;
        }
コード例 #2
0
ファイル: ViewCPageVm.cs プロジェクト: tp-nscan/HopAlong
        void InitUi()
        {
            var scse = (SimUtils.SimCliqueSetForEpoch)AppVm.Sim;
            var m = scse.CliqueNetworkTr.NodeGroups;

            CliqueEConfigVm = new CliqueEConfigVm
                (
                    gain: scse.UpdateParams.Gain,
                    stepSize: scse.UpdateParams.StepSize,
                    noiseLevel: scse.UpdateParams.NoiseLevel,
                    reportFreq: scse.UpdateParams.Epochs
                );

            NodeCount = m.RowCount;
            GroupCount = m.ColumnCount;
            MemCount = scse.Memories.ColumnCount;

            MatrixSfVm = new Grid2DVm<float>(
               strides: MathNetUtils.ToD2Bounds(scse.Memories), 
               colorMapper: ColorMap.RedBlue(NodeCount), 
               title: "Correlations");
        }
コード例 #3
0
ファイル: ViewHPageVm.cs プロジェクト: tp-nscan/HopAlong
 void ConfigChanged(CliqueEConfigVm cliqueEConfigVm)
 {
     OnPropertyChanged(nameof(UpdateCommand));
 }
コード例 #4
0
ファイル: ViewHPageVm.cs プロジェクト: tp-nscan/HopAlong
        private void DoUpdate()
        {
            var scse = (SimUtils.SimCliqueSetForEpoch)AppVm.Sim;
            var wak = new CliqueUpdateParams(
                    nodeGroupSynapses: scse.UpdateParams.NodeGroupSynapses,
                    gain: CliqueEConfigVm.Gain,
                    stepSize: CliqueEConfigVm.StepSize,
                    randSeed: MersenneTwister.Default.Next(),
                    noiseLevel: CliqueEConfigVm.NoiseLevel,
                    epochs: CliqueEConfigVm.ReportFreq
                );

            CliqueEConfigVm = new CliqueEConfigVm
            (
                gain: CliqueEConfigVm.Gain,
                stepSize: CliqueEConfigVm.StepSize,
                noiseLevel: CliqueEConfigVm.NoiseLevel,
                reportFreq: CliqueEConfigVm.ReportFreq
            );

            var result = AppVm.Sim.SetParams(wak);
            if (result.IsSuccess)
            {
                AppVm.SimRunner.Stop();
                AppVm.SetSim(Rop.ExtractResult(result).Value);
                AppVm.Run();
                return;
            }

            AppVm.UpdateError(Rop.ExtractErrorMessage(result).Value[0]);
        }