// Prepare input data for prediction. public static void PreparePredictor(ref NetworkContainer container, ref ImageNetworkPredictSettings settings) { TestForErrors(ref settings); EncogWrapper.LoadNetworkFromFS(ref container, settings.trainedNetwork); List <ICSVFilter> baseFilters = new List <ICSVFilter>(1); ICSVFilter quaternions = new CSVEvenColumnFilter(); baseFilters.Add(quaternions); // Setup loader. CSVLoaderSettings CSVSettings = new CSVLoaderSettings { filePath = settings.predictData, trimUp = 1, trimDown = 0, filters = baseFilters }; var data = CSVLoader <Vector3> .LoadData(ref CSVSettings); // Initialize image Transformer. ImageTransformerSettings imageSettings = new ImageTransformerSettings { focusJoints = (LeapMotionJoint[])Enum.GetValues(typeof(LeapMotionJoint)), samples = data, size = settings.imgSize }; ImageTransformer imageTransformer = new ImageTransformer(); if (settings.predictSettings.threshold.Equals(null)) { settings.predictSettings = new EncogPredictSettings { threshold = 0.9 }; } settings.predictSettings.data = imageTransformer.GetNeuralInput(imageSettings); if (settings.predictSettings.data.Length != container.network.InputCount) { throw new NoNetworkMatchException("Sample count doesn't match network input count."); } }
public static void PreparePredictor(ref NetworkContainer container, ref CountNetworkPredictSettings settings) { TestForErrors(ref settings); EncogWrapper.LoadNetworkFromFS(ref container, settings.trainedNetwork); List <ICSVFilter> baseFilters = new List <ICSVFilter>(1); ICSVFilter quaternions = new CSVEvenColumnFilter(); baseFilters.Add(quaternions); // Setup loader. CSVLoaderSettings CSVSettings = new CSVLoaderSettings { filePath = settings.predictData, trimUp = 1, trimDown = 0, filters = baseFilters }; var data = CSVLoader <Vector3> .LoadData(ref CSVSettings); // Initialize CountBased Transformer settings. IntervalBasedTransformerSettings countSettings = new IntervalBasedTransformerSettings { sampleList = data, count = settings.sampleCount }; CountBasedTransformer countTransformer = new CountBasedTransformer(); if (settings.predictSettings.threshold.Equals(null)) { settings.predictSettings = new EncogPredictSettings { threshold = 0.9 }; } settings.predictSettings.data = countTransformer.GetNeuralInput(countSettings); if (settings.predictSettings.data.Length != container.network.InputCount) { throw new NoNetworkMatchException("Sample count doesn't match network input count."); } }