Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/16/19 15:23:38 (5 years ago)
Author:
gkronber
Message:

#2847: added Storable-properties to map Queues to Arrays (and vice versa) to work around problem with serialization of Queues in HEAL.Attic

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/Pruning/ComplexityPruning.cs

    r17080 r17139  
    204204    public class PruningState : Item {
    205205      [Storable]
    206       public IDictionary<RegressionNodeModel, int> modelComplexities = new Dictionary<RegressionNodeModel, int>();
    207       [Storable]
    208       public IDictionary<RegressionNodeModel, int> nodeComplexities = new Dictionary<RegressionNodeModel, int>();
    209       [Storable]
    210       public IDictionary<RegressionNodeModel, int> pruningSizes = new Dictionary<RegressionNodeModel, int>();
    211       [Storable]
    212       public IDictionary<RegressionNodeModel, double> modelErrors = new Dictionary<RegressionNodeModel, double>();
    213 
    214       [Storable]
    215       public Queue<RegressionNodeModel> nodeQueue = new Queue<RegressionNodeModel>();
    216       [Storable]
    217       public Queue<IReadOnlyList<int>> trainingRowsQueue = new Queue<IReadOnlyList<int>>();
    218       [Storable]
    219       public Queue<IReadOnlyList<int>> pruningRowsQueue = new Queue<IReadOnlyList<int>>();
     206      public IDictionary<RegressionNodeModel, int> modelComplexities;
     207      [Storable]
     208      public IDictionary<RegressionNodeModel, int> nodeComplexities;
     209      [Storable]
     210      public IDictionary<RegressionNodeModel, int> pruningSizes;
     211      [Storable]
     212      public IDictionary<RegressionNodeModel, double> modelErrors;
     213
     214      [Storable]
     215      private RegressionNodeModel[] storableNodeQueue { get { return nodeQueue.ToArray(); } set { nodeQueue = new Queue<RegressionNodeModel>(value); } }
     216      public Queue<RegressionNodeModel> nodeQueue;
     217      [Storable]
     218      private IReadOnlyList<int>[] storabletrainingRowsQueue { get { return trainingRowsQueue.ToArray(); } set { trainingRowsQueue = new Queue<IReadOnlyList<int>>(value); } }
     219      public Queue<IReadOnlyList<int>> trainingRowsQueue;
     220      [Storable]
     221      private IReadOnlyList<int>[] storablepruningRowsQueue { get { return pruningRowsQueue.ToArray(); } set { pruningRowsQueue = new Queue<IReadOnlyList<int>>(value); } }
     222      public Queue<IReadOnlyList<int>> pruningRowsQueue;
    220223
    221224      //State.Code values denote the current action (for pausing)
     
    242245        Code = original.Code;
    243246      }
    244       public PruningState() { }
     247      public PruningState() {
     248        modelComplexities = new Dictionary<RegressionNodeModel, int>();
     249        nodeComplexities = new Dictionary<RegressionNodeModel, int>();
     250        pruningSizes = new Dictionary<RegressionNodeModel, int>();
     251        modelErrors = new Dictionary<RegressionNodeModel, double>();
     252        nodeQueue = new Queue<RegressionNodeModel>();
     253        trainingRowsQueue = new Queue<IReadOnlyList<int>>();
     254        pruningRowsQueue = new Queue<IReadOnlyList<int>>();
     255      }
    245256      public override IDeepCloneable Clone(Cloner cloner) {
    246257        return new PruningState(this, cloner);
Note: See TracChangeset for help on using the changeset viewer.