forked from dotnet/machinelearning
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding samples for data save and load from text and binary files (dot…
…net#3745) * Adding samples for data save and load from text and binary files * PR comments * nits
- Loading branch information
1 parent
706299b
commit ce46faa
Showing
4 changed files
with
145 additions
and
0 deletions.
There are no files selected for viewing
58 changes: 58 additions & 0 deletions
58
docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndLoadFromBinary.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.IO; | ||
using Microsoft.ML; | ||
|
||
namespace Samples.Dynamic | ||
{ | ||
public static class SaveAndLoadFromBinary | ||
{ | ||
public static void Example() | ||
{ | ||
// Create a new context for ML.NET operations. It can be used for exception tracking and logging, | ||
// as a catalog of available operations and as the source of randomness. | ||
// Setting the seed to a fixed number in this example to make outputs deterministic. | ||
var mlContext = new MLContext(seed: 0); | ||
|
||
// Create a list of training data points. | ||
var dataPoints = new List<DataPoint>() | ||
{ | ||
new DataPoint(){ Label = 0, Features = 4}, | ||
new DataPoint(){ Label = 0, Features = 5}, | ||
new DataPoint(){ Label = 0, Features = 6}, | ||
new DataPoint(){ Label = 1, Features = 8}, | ||
new DataPoint(){ Label = 1, Features = 9}, | ||
}; | ||
|
||
// Convert the list of data points to an IDataView object, which is consumable by ML.NET API. | ||
IDataView data = mlContext.Data.LoadFromEnumerable(dataPoints); | ||
|
||
// Create a FileStream object and write the IDataView to it as a binary IDV file. | ||
using (FileStream stream = new FileStream("data.idv", FileMode.Create)) | ||
mlContext.Data.SaveAsBinary(data, stream); | ||
|
||
// Create an IDataView object by loading the binary IDV file. | ||
IDataView loadedData = mlContext.Data.LoadFromBinary("data.idv"); | ||
|
||
// Inspect the data that is loaded from the previously saved binary file. | ||
var loadedDataEnumerable = mlContext.Data.CreateEnumerable<DataPoint>(loadedData, reuseRowObject: false); | ||
foreach (DataPoint row in loadedDataEnumerable) | ||
Console.WriteLine($"{row.Label}, {row.Features}"); | ||
|
||
// Preview of the loaded data. | ||
// 0, 4 | ||
// 0, 5 | ||
// 0, 6 | ||
// 1, 8 | ||
// 1, 9 | ||
} | ||
|
||
// Example with label and feature values. A data set is a collection of such examples. | ||
private class DataPoint | ||
{ | ||
public float Label { get; set; } | ||
|
||
public float Features { get; set; } | ||
} | ||
} | ||
} |
59 changes: 59 additions & 0 deletions
59
docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndLoadFromText.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.IO; | ||
using Microsoft.ML; | ||
|
||
namespace Samples.Dynamic | ||
{ | ||
public static class SaveAndLoadFromText | ||
{ | ||
public static void Example() | ||
{ | ||
// Create a new context for ML.NET operations. It can be used for exception tracking and logging, | ||
// as a catalog of available operations and as the source of randomness. | ||
// Setting the seed to a fixed number in this example to make outputs deterministic. | ||
var mlContext = new MLContext(seed: 0); | ||
|
||
// Create a list of training data points. | ||
var dataPoints = new List<DataPoint>() | ||
{ | ||
new DataPoint(){ Label = 0, Features = 4}, | ||
new DataPoint(){ Label = 0, Features = 5}, | ||
new DataPoint(){ Label = 0, Features = 6}, | ||
new DataPoint(){ Label = 1, Features = 8}, | ||
new DataPoint(){ Label = 1, Features = 9}, | ||
}; | ||
|
||
// Convert the list of data points to an IDataView object, which is consumable by ML.NET API. | ||
IDataView data = mlContext.Data.LoadFromEnumerable(dataPoints); | ||
|
||
// Create a FileStream object and write the IDataView to it as a text file. | ||
using (FileStream stream = new FileStream("data.tsv", FileMode.Create)) | ||
mlContext.Data.SaveAsText(data, stream); | ||
|
||
// Create an IDataView object by loading the text file. | ||
IDataView loadedData = mlContext.Data.LoadFromTextFile("data.tsv"); | ||
|
||
// Inspect the data that is loaded from the previously saved text file. | ||
var loadedDataEnumerable = mlContext.Data.CreateEnumerable<DataPoint>(loadedData, reuseRowObject: false); | ||
foreach (DataPoint row in loadedDataEnumerable) | ||
Console.WriteLine($"{row.Label}, {row.Features}"); | ||
|
||
// Preview of the loaded data. | ||
// 0, 4 | ||
// 0, 5 | ||
// 0, 6 | ||
// 1, 8 | ||
// 1, 9 | ||
} | ||
|
||
// Example with label and feature values. A data set is a collection of such examples. | ||
private class DataPoint | ||
{ | ||
public float Label { get; set; } | ||
|
||
public float Features { get; set; } | ||
} | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters