public Vector <float> Compute(StatePair input, bool training) { // Forward propagate. var img = InputLayer.Compute(input.Spatial); for (int i = 0; i < ConvolutionalLayers.Length; i++) { img = SubSampleLayers[i].Compute(ConvolutionalLayers[i].Compute(img)); } _vecp.left = FlattenLayer.Compute(img); _vecp.right = LinearHiddenLayer.Compute(VectorInput.Compute(input.Linear)); IsOutputFromTraining = false; var res = OutputLayer.Compute(CombinationLayer.Compute(_vecp)); if (ValuesComputed != null) { ValuesComputed(res, training); } return(res); }