/// <summary> /// The deep copy constructor. /// </summary> /// <param name="source">The source instance.</param> public ClusterErrStatistics(ClusterErrStatistics source) { ClusterName = source.ClusterName; NatPrecissionErrStat = new BasicStat(source.NatPrecissionErrStat); NrmPrecissionErrStat = new BasicStat(source.NrmPrecissionErrStat); BinaryErrStat = source.BinaryErrStat?.DeepClone(); return; }
/// <summary> /// A deep copy constructor /// </summary> /// <param name="source">Source instance</param> public ClusterErrStatistics(ClusterErrStatistics source) { ClusterName = source.ClusterName; BinBorder = source.BinBorder; NumOfMembers = source.NumOfMembers; NatPrecissionErrStat = new BasicStat(source.NatPrecissionErrStat); NrmPrecissionErrStat = new BasicStat(source.NrmPrecissionErrStat); BinaryErrStat = null; BinaryErrStat = source.BinaryErrStat?.DeepClone(); return; }
//Constructor /// <summary> /// Creates an unitialized instance /// </summary> /// <param name="index">The zero-based index of the readout unit.</param> /// <param name="readoutUnitCfg">The configuration of the readout unit.</param> public ReadoutUnitErrorStat(int index, ReadoutUnitSettings readoutUnitCfg) { Name = readoutUnitCfg.Name; Index = index; Task = readoutUnitCfg.TaskCfg.Type; ErrorStat = new BasicStat(); if (Task == ReadoutUnit.TaskType.Classification) { BinErrorStat = new BinErrStat(0.5d); } return; }
/// <summary> /// A deep copy constructor /// </summary> /// <param name="source">Source instance</param> public ClusterErrStatistics(ClusterErrStatistics source) { TaskType = source.TaskType; NumOfReadoutUnits = source.NumOfReadoutUnits; PrecissionErrStat = new BasicStat(source.PrecissionErrStat); BinaryErrStat = null; if (TaskType == CommonEnums.TaskType.Classification) { BinaryErrStat = new BinErrStat(source.BinaryErrStat); } return; }
/// <summary> /// Constructs an instance prepared for initialization (updates) /// </summary> /// <param name="taskType"></param> /// <param name="numOfReadoutUnits"></param> /// <param name="refBinDistr"></param> public ClusterErrStatistics(CommonEnums.TaskType taskType, int numOfReadoutUnits, BinDistribution refBinDistr) { TaskType = taskType; NumOfReadoutUnits = numOfReadoutUnits; PrecissionErrStat = new BasicStat(); BinaryErrStat = null; if (TaskType == CommonEnums.TaskType.Classification) { BinaryErrStat = new BinErrStat(refBinDistr); } return; }
/// <summary> /// Constructs an instance prepared for initialization (updates) /// </summary> /// <param name="clusterName">Name of the cluster (and also clusterred networks)</param> /// <param name="numOfMembers">Number of computing networks within the cluster</param> /// <param name="binBorder">Binary 0/1 border. Double value LT this border is considered as 0 and GE as 1. /// (relevant only if task type is Classification) /// </param> public ClusterErrStatistics(string clusterName, int numOfMembers, double binBorder = double.NaN) { ClusterName = clusterName; BinBorder = binBorder; NumOfMembers = numOfMembers; NatPrecissionErrStat = new BasicStat(); NrmPrecissionErrStat = new BasicStat(); BinaryErrStat = null; if (BinaryOutput) { BinaryErrStat = new BinErrStat(BinBorder); } return; }
/// <summary> /// Creates an uninitialized instance. /// </summary> /// <param name="clusterName">The name of the cluster.</param> /// <param name="outputType">The type of output.</param> public ClusterErrStatistics(string clusterName, TNRNet.OutputType outputType) { ClusterName = clusterName; NatPrecissionErrStat = new BasicStat(); NrmPrecissionErrStat = new BasicStat(); if (TNRNet.IsBinErrorStatsOutputType(outputType)) { BinaryErrStat = new BinErrStat(TNRNet.GetOutputDataRange(outputType).Mid); } else { BinaryErrStat = null; } return; }
/// <summary> /// The deep copy constructor. /// </summary> /// <param name="source">Source instance</param> public ReadoutUnit(ReadoutUnit source) { Network = null; if (source.Network != null) { Network = source.Network.DeepClone(); } TrainerInfoMessage = source.TrainerInfoMessage; TrainingErrorStat = null; if (source.TrainingErrorStat != null) { TrainingErrorStat = new BasicStat(source.TrainingErrorStat); } TrainingBinErrorStat = null; if (source.TrainingBinErrorStat != null) { TrainingBinErrorStat = new BinErrStat(source.TrainingBinErrorStat); } TestingErrorStat = null; if (source.TestingErrorStat != null) { TestingErrorStat = new BasicStat(source.TestingErrorStat); } TestingBinErrorStat = null; if (source.TestingBinErrorStat != null) { TestingBinErrorStat = new BinErrStat(source.TestingBinErrorStat); } OutputWeightsStat = null; if (source.OutputWeightsStat != null) { OutputWeightsStat = new BasicStat(source.OutputWeightsStat); } CombinedPrecisionError = source.CombinedPrecisionError; CombinedBinaryError = source.CombinedBinaryError; return; }