/// <summary>
        /// Trains a new model.
        /// </summary>
        /// <param name="inputPath">Path to a training set.</param>
        /// <param name="outputPath">Path to write the model to (excluding extension).</param>
        /// <param name="args">Training arguments.</param>
        /// <remarks>Trained model will consist of two files: .bin (main model) and .vec (word vectors).</remarks>
        public void Train(string inputPath, string outputPath, TrainingArgs args)
        {
            var argsStruct = new TrainingArgsStruct
            {
                Epochs        = args.Epochs,
                LearningRate  = args.LearningRate,
                MaxCharNGrams = args.MaxCharNGrams,
                MinCharNGrams = args.MinCharNGrams,
                Verbose       = args.Verbose,
                WordNGrams    = args.WordNGrams
            };

            TrainSupervised(_fastText, inputPath, outputPath, argsStruct, args.LabelPrefix);
            _maxLabelLen = GetMaxLabelLenght(_fastText);
        }
        /// <summary>
        /// Trains a new model using low-level FastText arguments.
        /// </summary>
        /// <param name="inputPath">Path to a training set.</param>
        /// <param name="outputPath">Path to write the model to (excluding extension).</param>
        /// <param name="args">Low-level training arguments.</param>
        /// <remarks>Trained model will consist of two files: .bin (main model) and .vec (word vectors).</remarks>
        public void Train(string inputPath, string outputPath, FastTextArgs args)
        {
            ValidatePaths(inputPath, outputPath, args.PretrainedVectors);

            var argsStruct = new TrainingArgsStruct
            {
                bucket = args.bucket,
                cutoff = args.cutoff,
                dim    = args.dim,
                dsub   = args.dsub,
                epoch  = args.epoch,

                loss          = (loss_name)args.loss,
                lr            = args.lr,
                lrUpdateRate  = args.lrUpdateRate,
                maxn          = args.maxn,
                minCount      = args.minCount,
                minCountLabel = args.minCountLabel,
                minn          = args.minn,
                model         = (model_name)args.model,
                neg           = args.neg,

                qnorm      = args.qnorm,
                qout       = args.qout,
                retrain    = args.retrain,
                saveOutput = args.saveOutput,
                t          = args.t,
                thread     = args.thread,
                verbose    = args.verbose,
                wordNgrams = args.wordNgrams,
                ws         = args.ws,
            };

            Train(_fastText, inputPath, outputPath, argsStruct, args.LabelPrefix, args.PretrainedVectors);
            _maxLabelLen = GetMaxLabelLength(_fastText);
            _modelLoaded = true;
        }
 private static extern void TrainSupervised(IntPtr hPtr, string input, string output, TrainingArgsStruct args, string labelPrefix);
Exemple #4
0
 private static extern void Train(IntPtr hPtr, string input, string output, TrainingArgsStruct args, string labelPrefix, string pretrainedVectors);