/// <summary> /// /// </summary> /// <param name="inputs"></param> /// <param name="outputs"></param> /// <returns></returns> public double Train(float[][] inputs, float[][] outputs) { //ensure that data is destroyed after use using (Value inputsValue = Value.CreateBatch(inputVariable.Shape, NP.ToOneDimensional(inputs), device)) using (Value outputsValue = Value.CreateBatch(outputVariable.Shape, NP.ToOneDimensional(outputs), device)) { traindEpochs++; var miniBatch = new Dictionary <Variable, Value>() { { inputVariable, inputsValue }, { outputVariable, outputsValue } }; trainer.TrainMinibatch(miniBatch, false, device); return(trainer.PreviousMinibatchEvaluationAverage()); } }
public float[][] Predicts(float[][] inputs) { using (Value inputsValue = Value.CreateBatch(inputVariable.Shape, NP.ToOneDimensional(inputs), device)) { var inputDict = new Dictionary <Variable, Value>() { { inputVariable, inputsValue } }; var outputDict = new Dictionary <Variable, Value>() { { classifierOutput.Output, null } }; classifierOutput.Evaluate(inputDict, outputDict, device); var prdict = outputDict[classifierOutput.Output].GetDenseData <float>(classifierOutput.Output); float[][] outputs = new float[inputs.Length][]; for (int i = 0; i < inputs.Length; i++) { outputs[i] = prdict[i].ToArray(); } return(outputs); } }