Ejemplo n.º 1
0
        private void InitMap <T>(T val, DataViewType type, int numberOfBits = 20, ValueGetter <T> getter = null)
        {
            if (getter == null)
            {
                getter = (ref T dst) => dst = val;
            }
            _inRow = RowImpl.Create(type, getter);
            // One million features is a nice, typical number.
            var info   = new HashingEstimator.ColumnOptions("Bar", "Foo", numberOfBits: numberOfBits);
            var xf     = new HashingTransformer(_env, new[] { info });
            var mapper = ((ITransformer)xf).GetRowToRowMapper(_inRow.Schema);
            var column = mapper.OutputSchema["Bar"];
            var outRow = mapper.GetRow(_inRow, column);

            if (type is VectorType)
            {
                _vecGetter = outRow.GetGetter <VBuffer <uint> >(column);
            }
            else
            {
                _getter = outRow.GetGetter <uint>(column);
            }
        }
Ejemplo n.º 2
0
        private void InitMap <T>(T val, ColumnType type, int hashBits = 20, ValueGetter <T> getter = null)
        {
            if (getter == null)
            {
                getter = (ref T dst) => dst = val;
            }
            _inRow = RowImpl.Create(type, getter);
            // One million features is a nice, typical number.
            var info   = new HashingTransformer.ColumnInfo("Foo", "Bar", hashBits: hashBits);
            var xf     = new HashingTransformer(_env, new[] { info });
            var mapper = xf.GetRowToRowMapper(_inRow.Schema);
            var column = mapper.OutputSchema["Bar"];
            var outRow = mapper.GetRow(_inRow, c => c == column.Index);

            if (type is VectorType)
            {
                _vecGetter = outRow.GetGetter <VBuffer <uint> >(column.Index);
            }
            else
            {
                _getter = outRow.GetGetter <uint>(column.Index);
            }
        }
Ejemplo n.º 3
0
        private void InitMapMurmurHashV1 <T>(T val, DataViewType type, ValueGetter <T> getter = null)
        {
            if (getter == null)
            {
                getter = (ref T dst) => dst = val;
            }
            _inRow = RowImpl.Create(type, getter);

            var modelPath = GetBenchmarkDataPathAndEnsureData("backcompat/MurmurHashV1.zip");
            var estimator = _env.Model.Load(modelPath, out var schema);
            var mapper    = ((ITransformer)estimator).GetRowToRowMapper(_inRow.Schema);
            var column    = mapper.OutputSchema["Bar"];
            var outRow    = mapper.GetRow(_inRow, column);

            if (type is VectorDataViewType)
            {
                _vecGetter = outRow.GetGetter <VBuffer <uint> >(column);
            }
            else
            {
                _getter = outRow.GetGetter <uint>(column);
            }
        }
        private void InitMap <T>(T val, DataViewType type, int numberOfBits = 20, ValueGetter <T> getter = null)
        {
            if (getter == null)
            {
                getter = (ref T dst) => dst = val;
            }
            _inRow = RowImpl.Create(type, getter);
            // One million features is a nice, typical number.
            var info   = _env.Transforms.Conversion.Hash("Bar", "Foo", numberOfBits: numberOfBits);
            var xf     = info.Fit(new EmptyDataView(_inRow.Schema));
            var mapper = ((ITransformer)xf).GetRowToRowMapper(_inRow.Schema);
            var column = mapper.OutputSchema["Bar"];
            var outRow = mapper.GetRow(_inRow, new[] { column });

            if (type is VectorDataViewType)
            {
                _vecGetter = outRow.GetGetter <VBuffer <uint> >(column);
            }
            else
            {
                _getter = outRow.GetGetter <uint>(column);
            }
        }