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); } }
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); } }
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); } }