Changeset 15739
 Timestamp:
 02/08/18 14:16:39 (3 years ago)
 Location:
 trunk/HeuristicLab.Algorithms.DataAnalysis/3.4/NeuralNetwork
 Files:

 2 edited
Legend:
 Unmodified
 Added
 Removed

trunk/HeuristicLab.Algorithms.DataAnalysis/3.4/NeuralNetwork/NeuralNetworkEnsembleModel.cs
r15583 r15739 102 102 x[column] = inputData[row, column]; 103 103 } 104 alglib.mlpeprocess(mlpEnsemble, x, ref y); 104 // mlpeprocess writes data in mlpEnsemble and is therefore not threadsafe 105 lock (mlpEnsemble) { 106 alglib.mlpeprocess(mlpEnsemble, x, ref y); 107 } 105 108 yield return y[0]; 106 109 } … … 119 122 x[column] = inputData[row, column]; 120 123 } 121 alglib.mlpeprocess(mlpEnsemble, x, ref y); 124 // mlpeprocess writes data in mlpEnsemble and is therefore not threadsafe 125 lock (mlpEnsemble) { 126 alglib.mlpeprocess(mlpEnsemble, x, ref y); 127 } 122 128 // find class for with the largest probability value 123 129 int maxProbClassIndex = 0; 
trunk/HeuristicLab.Algorithms.DataAnalysis/3.4/NeuralNetwork/NeuralNetworkModel.cs
r15583 r15739 106 106 x[column] = inputData[row, column]; 107 107 } 108 alglib.mlpprocess(multiLayerPerceptron, x, ref y); 108 // NOTE: mlpprocess changes data in multiLayerPerceptron and is therefore not threadsave! 109 lock (multiLayerPerceptron) { 110 alglib.mlpprocess(multiLayerPerceptron, x, ref y); 111 } 109 112 yield return y[0]; 110 113 } … … 112 115 113 116 public override IEnumerable<double> GetEstimatedClassValues(IDataset dataset, IEnumerable<int> rows) { 114 double[,] inputData = dataset.ToArray( 117 double[,] inputData = dataset.ToArray(allowedInputVariables, rows); 115 118 116 119 int n = inputData.GetLength(0); … … 123 126 x[column] = inputData[row, column]; 124 127 } 125 alglib.mlpprocess(multiLayerPerceptron, x, ref y); 128 // NOTE: mlpprocess changes data in multiLayerPerceptron and is therefore not threadsave! 129 lock (multiLayerPerceptron) { 130 alglib.mlpprocess(multiLayerPerceptron, x, ref y); 131 } 126 132 // find class for with the largest probability value 127 133 int maxProbClassIndex = 0;
Note: See TracChangeset
for help on using the changeset viewer.