コード例 #1
0
 public IEnumerator TrainNetwork()
 {
     if (trainingSet != null)
     {
         if (trainingSet.Count > 0)
         {
             while (trainingSolver.trainingInProgress)
             {
                 yield return(null);
             }
             List <float[, , ]> observation_inputs = new List <float[, , ]>();
             List <float[]>     decision_outputs   = new List <float[]>();
             List <float>       trainingSetWeights = new List <float>();
             for (int n = 0; n < trainingSet.Count; n++)
             {
                 observation_inputs.Add(Noedify_Utils.AddTwoSingularDims(trainingSet[n].observation));
                 decision_outputs.Add(trainingSet[n].decision);
                 trainingSetWeights.Add(trainingSet[n].weight);
             }
             trainingSolver.TrainNetwork(net, observation_inputs, decision_outputs, trainingEpochs, trainingBatchSize, trainingRate, Noedify_Solver.CostFunction.MeanSquare, Noedify_Solver.SolverMethod.MainThread, trainingSetWeights, N_threads);
         }
     }
 }
コード例 #2
0
 // Evaluate netowrk to generate decision
 float[] AIDecision(float[] observation)
 {
     evalSolver.Evaluate(simController.net, Noedify_Utils.AddTwoSingularDims(observation), Noedify_Solver.SolverMethod.MainThread);
     return(evalSolver.prediction);
 }