public SaveOnnxCommand(IHostEnvironment env, Arguments args)
            : base(env, args, LoadName)
        {
            Host.CheckValue(args, nameof(args));
            Host.CheckNonWhiteSpace(args.Onnx, nameof(args.Onnx));

            Utils.CheckOptionalUserDirectory(args.Onnx, nameof(args.Onnx));
            _outputModelPath     = args.Onnx;
            _outputJsonModelPath = string.IsNullOrWhiteSpace(args.Json) ? null : args.Json;
            if (args.Name == null)
            {
                _name = Path.GetFileNameWithoutExtension(_outputModelPath);
            }
            else
            {
                Host.CheckNonWhiteSpace(args.Name, nameof(args.Name));
                _name = args.Name;
            }

            _loadPredictor = args.LoadPredictor;
            _inputsToDrop  = CreateDropMap(args.InputsToDropArray ?? args.InputsToDrop?.Split(','));
            _outputsToDrop = CreateDropMap(args.OutputsToDropArray ?? args.OutputsToDrop?.Split(','));
            _domain        = args.Domain;
            _model         = args.Model;
        }
 public static void WriteKcHousePriceModel(string dataPath, Stream stream)
 {
     if (s_housePriceModel == null)
     {
         s_housePriceModel = CreateKcHousePricePredictorModel(dataPath);
     }
     s_housePriceModel.Save(s_environment, stream);
 }
        public IPredictorModel Apply(IHostEnvironment env, ITransformModel transformModel)
        {
            Contracts.CheckValue(env, nameof(env));
            env.CheckValue(transformModel, nameof(transformModel));
            ITransformModel newTransformModel = _transformModel.Apply(env, transformModel);

            Contracts.AssertValue(newTransformModel);
            return(new PredictorModel(newTransformModel, _predictor, _roleMappings));
        }
 private PredictorModel(ITransformModel transformModel, IPredictor predictor, KeyValuePair <RoleMappedSchema.ColumnRole, string>[] roleMappings)
 {
     Contracts.AssertValue(transformModel);
     Contracts.AssertValue(predictor);
     Contracts.AssertValue(roleMappings);
     _transformModel = transformModel;
     _predictor      = predictor;
     _roleMappings   = roleMappings;
 }
        public PredictorModel(IHostEnvironment env, RoleMappedData trainingData, IDataView startingData, IPredictor predictor)
        {
            Contracts.CheckValue(env, nameof(env));
            env.CheckValue(trainingData, nameof(trainingData));
            env.CheckValue(predictor, nameof(predictor));

            _transformModel = new TransformModel(env, trainingData.Data, startingData);
            _roleMappings   = trainingData.Schema.GetColumnRoleNames().ToArray();
            _predictor      = predictor;
        }
        public PredictorModel(IHostEnvironment env, Stream stream)
        {
            Contracts.CheckValue(env, nameof(env));
            env.CheckValue(stream, nameof(stream));
            using (var ch = env.Start("Loading predictor model"))
            {
                // REVIEW: address the asymmetry in the way we're loading and saving the model.
                _transformModel = new TransformModel(env, stream);

                var roles = ModelFileUtils.LoadRoleMappingsOrNull(env, stream);
                env.CheckDecode(roles != null, "Predictor model must contain role mappings");
                _roleMappings = roles.ToArray();

                _predictor = ModelFileUtils.LoadPredictorOrNull(env, stream);
                env.CheckDecode(_predictor != null, "Predictor model must contain a predictor");
            }
        }
Exemple #7
0
        public static CombineTransformModelsOutput CombineTransformModels(IHostEnvironment env, CombineTransformModelsInput input)
        {
            Contracts.CheckValue(env, nameof(env));
            var host = env.Register("CombineTransformModels");

            host.CheckValue(input, nameof(input));
            EntryPointUtils.CheckInputArgs(host, input);
            host.CheckNonEmpty(input.Models, nameof(input.Models));

            ITransformModel model = input.Models[input.Models.Length - 1];

            for (int i = input.Models.Length - 2; i >= 0; i--)
            {
                model = model.Apply(env, input.Models[i]);
            }

            return(new CombineTransformModelsOutput {
                OutputModel = model
            });
        }
Exemple #8
0
        /// <summary>
        /// Apply this transform model to the given input transform model to produce a composite transform model.
        /// </summary>
        public ITransformModel Apply(IHostEnvironment env, ITransformModel input)
        {
            Contracts.CheckValue(env, nameof(env));
            env.CheckValue(input, nameof(input));

            IDataView view;
            Schema    schemaRoot = input.InputSchema;
            var       mod        = input as TransformModel;

            if (mod != null)
            {
                view = ApplyTransformUtils.ApplyAllTransformsToData(env, _chain, mod._chain);
            }
            else
            {
                view = new EmptyDataView(env, schemaRoot);
                view = input.Apply(env, view);
                view = Apply(env, view);
            }

            return(new TransformModel(env, schemaRoot, view));
        }
 public SkeletalTransform(ITransformModel transform)
 {
     this.myTransform = transform;
 }
 public ISkeletalTransform CreateProduct(ITransformModel rootModel)
 {
     return new SkeletalTransform(rootModel);
 }