Closed
Description
Reasons for this are listed in issue #2663.
Currently, ModelOperationsCatalog offers the following API:
public void Save(ITransformer model, Stream stream)
public ITransformer Load(Stream stream)
So when using a loaded model, users have to create the IDataView
to be passed to the ITransformer
themselves by creating a new TextLoader
, (or another way?).
I suggest adding these new APIs to ModelOperationsCatalog:
public void Save<TSource>(IDataReader<TSource> model, Stream stream);
public void Save<TSource>(IDataReader<TSource> reader, ITransformer model, Stream stream);
public IDataReader<TSource> Load<TSource>(Stream stream);
The last one would return a CompositeDataReader
containing the loader and the ITransformer
chain, so we could also add new APIs to DataOperationsCatalog
to only load the reader:
public TextLoader CreateTextLoader(Stream stream);
Another option is to add an API that creates a PredictionEngine
from a Stream
, or an API that creates a SchemaDefinition
from a Stream
(that way users can use the existing API to create a PredictionEngine
).
@TomFinley, what do you think?