public static void CreateGestureClassifier(Config config, double[][] trainData, int[] targets, Action <Classifier> callback) { TrainingArgs trainingArgs; switch (config) { case Config.Gesture: trainingArgs = new TrainingArgs( classifier: new Classifier(numInputs: 33, numHiddenNeurons: 11), trainData: trainData, targets: targets, trainRate: 0.5, targetError: 0.05, maxEpochs: 3000, maxRestarts: 20, callback: callback ); break; default: throw new ArgumentException("Unhandled config: " + config); } new Thread(Create).Start(trainingArgs); }
private static void Create(object obj) { if (!(obj is TrainingArgs)) { throw new ArgumentException("Object is not of type " + typeof(TrainingArgs).FullName); } TrainingArgs args = (TrainingArgs)obj; Classifier classifier = args.Classifier; classifier.Train(args.TrainData, args.Targets, args.TrainRate, args.TargetError, args.MaxEpochs, args.MaxRestarts); args.Callback(classifier); }
static void Main(string[] args) { var fastText = new FastTextWrapper(); fastText.Train(@"C:\_Models\cooking.train.txt", @"C:\_Models\cooking", TrainingArgs.SupervisedDefaults(x => { x.Epochs = 25; x.LearningRate = 1.0; x.WordNGrams = 3; x.Verbose = 2; x.MinCharNGrams = 3; x.MaxCharNGrams = 6; })); //fastText.LoadModel(@"C:\_Models\fasttext.bin"); var prediction = fastText.PredictSingle("what is the difference between a new york strip and a bone-in new york cut sirloin ?"); }