From db837caf30f490cfd301c58825481020b91c005d Mon Sep 17 00:00:00 2001 From: J W Date: Thu, 28 Feb 2019 21:57:56 -0500 Subject: [PATCH 01/11] Add sample file to read and write binary files --- .../DataOperations/SaveAndReadFromBinary.cs | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs new file mode 100644 index 0000000000..32677d73e0 --- /dev/null +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; +using System.IO; +using Microsoft.Data.DataView; +using Microsoft.ML.SamplesUtils; + +namespace Microsoft.ML.Samples.Dynamic.DataOperations +{ + public class SaveAndReadFromBinary + { + public static void Example() + { + var mlContext = new MLContext(); + + // Get a small dataset as an IEnumerable. + IEnumerable enumerableOfData = DatasetUtils.GetSampleTemperatureData(5); + + // Load dataset into an IDataView. + IDataView data = mlContext.Data.LoadFromEnumerable(enumerableOfData); + + // Creating a FileStream object to create a file and use + // the stream to create a binary file. + using (var stream = new FileStream("./sample-temp-data.idv", FileMode.Create)) + { + mlContext.Data.SaveAsBinary(data, stream); + } + + // Load a binary file by file path. + var binaryData = mlContext.Data.LoadFromBinary("./sample-temp-data.idv"); + } + } +} From 4338862ea599affe16b907013bb4a4e4641fe028 Mon Sep 17 00:00:00 2001 From: J W Date: Thu, 28 Feb 2019 22:41:04 -0500 Subject: [PATCH 02/11] Add cookbook section for reading and writing binary files --- docs/code/MlNetCookBook.md | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docs/code/MlNetCookBook.md b/docs/code/MlNetCookBook.md index 80eeaa27c7..7ace0336ec 100644 --- a/docs/code/MlNetCookBook.md +++ b/docs/code/MlNetCookBook.md @@ -41,6 +41,7 @@ Please feel free to search this page and use any code that suits your needs. - [How do I train using cross-validation?](#how-do-i-train-using-cross-validation) - [Can I mix and match static and dynamic pipelines?](#can-i-mix-and-match-static-and-dynamic-pipelines) - [How can I define my own transformation of data?](#how-can-i-define-my-own-transformation-of-data) +- [How can I read and write binary data?](#how-can-i-read-and-write-binary-data) ### General questions about the samples @@ -1022,3 +1023,46 @@ ITransformer loadedModel; using (var fs = File.OpenRead(modelPath)) loadedModel = newContext.Model.Load(fs); ``` + +## How can I read and write binary data? +Other than using text files ML.NET will allow you to read and write binary data. + +To write binary data you need some data to be able to save. Specifically you need an instance of an `IDavaView`. Below is a code snippet that uses the iris data as an example. + +```csharp +// Data model for the iris data +public class IrisData +{ + public float Label; + public float SepalLength; + public float SepalWidth; + public float PetalLength; + public float PetalWidth; +} + +// An array of iris data points +var dataArray = new[] { + new IrisData{Label=1, PetalLength=1, SepalLength=1, PetalWidth=1, SepalWidth=1}, + new IrisData{Label=0, PetalLength=2, SepalLength=2, PetalWidth=2, SepalWidth=2} +}; + +// Create the ML.NET context. +var context = new MLContext(); + +// Create the data view. +// This method will use the definition of IrisData to understand what columns there are in the +// data view. +var data = context.CreateDataView(dataArray); + +// Use a FileStream to create a file. Use the stream and the data view in the "SaveAsBinary" method. +using(var stream = new FileStream("./iris.idv", FileMode.Create)) +{ + context.Data.SaveAsBinary(data, stream); +} +``` + +To read a binary file, simply use the `context.Data.ReadFromBinary` method and pass in the path of the binary file to read in. + +```csharp +var data = context.Data.ReadFromBinary("./iris.idv"); +``` \ No newline at end of file From 57859ad05895f9e04b427c299ffc76769d7a184e Mon Sep 17 00:00:00 2001 From: J W Date: Thu, 28 Feb 2019 22:46:11 -0500 Subject: [PATCH 03/11] Rename class to match ML.NET names --- .../Dynamic/DataOperations/SaveAndReadFromBinary.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs index 32677d73e0..19e1264f88 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs @@ -5,7 +5,7 @@ namespace Microsoft.ML.Samples.Dynamic.DataOperations { - public class SaveAndReadFromBinary + public class SaveAndLoadFromBinary { public static void Example() { From 3d20a995f4f53db82be05b33da566ab596c61ecf Mon Sep 17 00:00:00 2001 From: J W Date: Mon, 4 Mar 2019 19:34:15 -0500 Subject: [PATCH 04/11] Update based off PR feedback --- docs/code/MlNetCookBook.md | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/docs/code/MlNetCookBook.md b/docs/code/MlNetCookBook.md index 7ace0336ec..4bcd32376c 100644 --- a/docs/code/MlNetCookBook.md +++ b/docs/code/MlNetCookBook.md @@ -1025,7 +1025,7 @@ using (var fs = File.OpenRead(modelPath)) ``` ## How can I read and write binary data? -Other than using text files ML.NET will allow you to read and write binary data. +Other than using text files, ML.NET will allow you to read and write binary data. This has a few advantages such as not having to specify a schema, can improve reading times, and are generally smaller than text files. To write binary data you need some data to be able to save. Specifically you need an instance of an `IDavaView`. Below is a code snippet that uses the iris data as an example. @@ -1033,25 +1033,28 @@ To write binary data you need some data to be able to save. Specifically you nee // Data model for the iris data public class IrisData { - public float Label; - public float SepalLength; - public float SepalWidth; - public float PetalLength; - public float PetalWidth; + public float Label { get; set; }; + public float SepalLength { get; set; }; + public float SepalWidth { get; set; }; + public float PetalLength { get; set; }; + public float PetalWidth { get; set; }; } // An array of iris data points -var dataArray = new[] { - new IrisData{Label=1, PetalLength=1, SepalLength=1, PetalWidth=1, SepalWidth=1}, - new IrisData{Label=0, PetalLength=2, SepalLength=2, PetalWidth=2, SepalWidth=2} +var dataArray = new[] +{ + new IrisData { Label=1, PetalLength=1, SepalLength=1, PetalWidth=1, SepalWidth=1 }, + new IrisData { Label=0, PetalLength=2, SepalLength=2, PetalWidth=2, SepalWidth=2 } }; // Create the ML.NET context. var context = new MLContext(); // Create the data view. -// This method will use the definition of IrisData to understand what columns there are in the -// data view. +// This method will use the definition of IrisData to understand what columns there are +// in the data view. However, the objects in ML.NET are only "promises" of data since +// ML.NET operations are lazy. One way to get a look at the data is with Schema Comprehension. +// Refer to this document for more information - https://github.com/dotnet/machinelearning/blob/master/docs/code/SchemaComprehension.md var data = context.CreateDataView(dataArray); // Use a FileStream to create a file. Use the stream and the data view in the "SaveAsBinary" method. @@ -1061,7 +1064,7 @@ using(var stream = new FileStream("./iris.idv", FileMode.Create)) } ``` -To read a binary file, simply use the `context.Data.ReadFromBinary` method and pass in the path of the binary file to read in. +To read a binary file, simply use the `context.Data.ReadFromBinary` method and pass in the path of the binary file to read in. Notice that the schema of the data does not need to be defined here. ```csharp var data = context.Data.ReadFromBinary("./iris.idv"); From d5ca7c42a74f1e846521f397aaa227b0cd97e5ec Mon Sep 17 00:00:00 2001 From: J W Date: Mon, 4 Mar 2019 20:00:24 -0500 Subject: [PATCH 05/11] Update to let code actually compile --- docs/code/MlNetCookBook.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/code/MlNetCookBook.md b/docs/code/MlNetCookBook.md index 4bcd32376c..b0e99b3fc0 100644 --- a/docs/code/MlNetCookBook.md +++ b/docs/code/MlNetCookBook.md @@ -1033,11 +1033,11 @@ To write binary data you need some data to be able to save. Specifically you nee // Data model for the iris data public class IrisData { - public float Label { get; set; }; - public float SepalLength { get; set; }; - public float SepalWidth { get; set; }; - public float PetalLength { get; set; }; - public float PetalWidth { get; set; }; + public float Label { get; set; } + public float SepalLength { get; set; } + public float SepalWidth { get; set; } + public float PetalLength { get; set; } + public float PetalWidth { get; set; } } // An array of iris data points From e28823ea549572e5ef0dfe6a8bc422ff68d8d0f4 Mon Sep 17 00:00:00 2001 From: J W Date: Mon, 4 Mar 2019 20:45:25 -0500 Subject: [PATCH 06/11] A cookbook test and slight update to the doc --- docs/code/MlNetCookBook.md | 4 +- .../Microsoft.ML.Tests.csproj | 2 + .../CookbookSamplesDynamicApi.cs | 39 +++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/docs/code/MlNetCookBook.md b/docs/code/MlNetCookBook.md index b0e99b3fc0..afd93aa3a0 100644 --- a/docs/code/MlNetCookBook.md +++ b/docs/code/MlNetCookBook.md @@ -1050,12 +1050,12 @@ var dataArray = new[] // Create the ML.NET context. var context = new MLContext(); -// Create the data view. +// Create the data view from an IEnumerable. // This method will use the definition of IrisData to understand what columns there are // in the data view. However, the objects in ML.NET are only "promises" of data since // ML.NET operations are lazy. One way to get a look at the data is with Schema Comprehension. // Refer to this document for more information - https://github.com/dotnet/machinelearning/blob/master/docs/code/SchemaComprehension.md -var data = context.CreateDataView(dataArray); +var data = context.Data.LoadFromEnumerable(dataArray); // Use a FileStream to create a file. Use the stream and the data view in the "SaveAsBinary" method. using(var stream = new FileStream("./iris.idv", FileMode.Create)) diff --git a/test/Microsoft.ML.Tests/Microsoft.ML.Tests.csproj b/test/Microsoft.ML.Tests/Microsoft.ML.Tests.csproj index be0dec9ffa..95d3d251df 100644 --- a/test/Microsoft.ML.Tests/Microsoft.ML.Tests.csproj +++ b/test/Microsoft.ML.Tests/Microsoft.ML.Tests.csproj @@ -6,6 +6,7 @@ + @@ -46,6 +47,7 @@ + diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/CookbookSamples/CookbookSamplesDynamicApi.cs b/test/Microsoft.ML.Tests/Scenarios/Api/CookbookSamples/CookbookSamplesDynamicApi.cs index 1cb5b31033..e98466fd14 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/CookbookSamples/CookbookSamplesDynamicApi.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/CookbookSamples/CookbookSamplesDynamicApi.cs @@ -506,6 +506,45 @@ public override Action GetMapping() } } + public class IrisData + { + public float Label { get; set; } + public float SepalLength { get; set; } + public float SepalWidth { get; set; } + public float PetalLength { get; set; } + public float PetalWidth { get; set; } + } + + [Fact] + public void ReadAndWriteBinaryData() => + BinaryData(); + + private void BinaryData() + { + // An array of iris data points + var dataArray = new[] + { + new IrisData { Label=1, PetalLength=1, SepalLength=1, PetalWidth=1, SepalWidth=1 }, + new IrisData { Label=0, PetalLength=2, SepalLength=2, PetalWidth=2, SepalWidth=2 } + }; + + // Create the ML.NET context. + var context = new MLContext(); + + // Create the data view from an IEnumerable. + // This method will use the definition of IrisData to understand what columns there are + // in the data view. However, the objects in ML.NET are only "promises" of data since + // ML.NET operations are lazy. One way to get a look at the data is with Schema Comprehension. + // Refer to this document for more information - https://github.com/dotnet/machinelearning/blob/master/docs/code/SchemaComprehension.md + var data = context.Data.LoadFromEnumerable(dataArray); + + // Use a FileStream to create a file. Use the stream and the data view in the "SaveAsBinary" method. + using (var stream = new FileStream("./iris.idv", FileMode.Create)) + { + context.Data.SaveAsBinary(data, stream); + } + } + private static void RunEndToEnd(MLContext mlContext, IDataView trainData, string modelPath) { // Construct the learning pipeline. Note that we are now providing a contract name for the custom mapping: From 5741c40e20c7db8af8d7eef874b620f0a590d705 Mon Sep 17 00:00:00 2001 From: J W Date: Fri, 8 Mar 2019 07:17:32 -0500 Subject: [PATCH 07/11] Updated for PR feedback --- docs/code/MlNetCookBook.md | 94 +++++++++++----------- src/Native/MatrixFactorizationNative/libmf | 2 +- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/docs/code/MlNetCookBook.md b/docs/code/MlNetCookBook.md index afd93aa3a0..92cc10d2bf 100644 --- a/docs/code/MlNetCookBook.md +++ b/docs/code/MlNetCookBook.md @@ -26,6 +26,7 @@ Please feel free to search this page and use any code that suits your needs. ### List of recipes - [How do I load data from a text file?](#how-do-i-load-data-from-a-text-file) +- [How can I read and write binary data?](#how-can-i-read-and-write-binary-data) - [How do I load data with many columns from a CSV?](#how-do-i-load-data-with-many-columns-from-a-csv) - [How do I debug my experiment or preview my pipeline?](#how-do-i-debug-my-experiment-or-preview-my-pipeline) - [How do I look at the intermediate data?](#how-do-i-look-at-the-intermediate-data) @@ -41,7 +42,6 @@ Please feel free to search this page and use any code that suits your needs. - [How do I train using cross-validation?](#how-do-i-train-using-cross-validation) - [Can I mix and match static and dynamic pipelines?](#can-i-mix-and-match-static-and-dynamic-pipelines) - [How can I define my own transformation of data?](#how-can-i-define-my-own-transformation-of-data) -- [How can I read and write binary data?](#how-can-i-read-and-write-binary-data) ### General questions about the samples @@ -142,6 +142,52 @@ var data = mlContext.Data.LoadFromTextFile(dataPath, ``` +## How can I read and write binary data? +Other than using text files, ML.NET will allow you to read and write binary data. This has a few advantages such as not having to specify a schema, can improve reading times, and are generally smaller than text files. + +To write binary data you need some data to be able to save. Specifically you need an instance of an `IDavaView`. Below is a code snippet that uses the iris data as an example. + +```csharp +// Data model for the iris data +public class IrisData +{ + public float Label { get; set; } + public float SepalLength { get; set; } + public float SepalWidth { get; set; } + public float PetalLength { get; set; } + public float PetalWidth { get; set; } +} + +// An array of iris data points +var dataArray = new[] +{ + new IrisData { Label=1, PetalLength=1, SepalLength=1, PetalWidth=1, SepalWidth=1 }, + new IrisData { Label=0, PetalLength=2, SepalLength=2, PetalWidth=2, SepalWidth=2 } +}; + +// Create the ML.NET context. +var context = new MLContext(); + +// Create the data view from an IEnumerable. +// This method will use the definition of IrisData to understand what columns there are +// in the data view. However, the objects in ML.NET are only "promises" of data since +// ML.NET operations are lazy. One way to get a look at the data is with Schema Comprehension. +// Refer to this document for more information - https://github.com/dotnet/machinelearning/blob/master/docs/code/SchemaComprehension.md +var data = context.Data.LoadFromEnumerable(dataArray); + +// Use a FileStream to create a file. Use the stream and the data view in the "SaveAsBinary" method. +using(var stream = new FileStream("./iris.idv", FileMode.Create)) +{ + context.Data.SaveAsBinary(data, stream); +} +``` + +To read a binary file, simply use the `context.Data.ReadFromBinary` method and pass in the path of the binary file to read in. Notice that the schema of the data does not need to be defined here. + +```csharp +var data = context.Data.ReadFromBinary("./iris.idv"); +``` + ## How do I load data from multiple files? You can again use the `TextLoader`, and specify an array of files to its Load method. @@ -1023,49 +1069,3 @@ ITransformer loadedModel; using (var fs = File.OpenRead(modelPath)) loadedModel = newContext.Model.Load(fs); ``` - -## How can I read and write binary data? -Other than using text files, ML.NET will allow you to read and write binary data. This has a few advantages such as not having to specify a schema, can improve reading times, and are generally smaller than text files. - -To write binary data you need some data to be able to save. Specifically you need an instance of an `IDavaView`. Below is a code snippet that uses the iris data as an example. - -```csharp -// Data model for the iris data -public class IrisData -{ - public float Label { get; set; } - public float SepalLength { get; set; } - public float SepalWidth { get; set; } - public float PetalLength { get; set; } - public float PetalWidth { get; set; } -} - -// An array of iris data points -var dataArray = new[] -{ - new IrisData { Label=1, PetalLength=1, SepalLength=1, PetalWidth=1, SepalWidth=1 }, - new IrisData { Label=0, PetalLength=2, SepalLength=2, PetalWidth=2, SepalWidth=2 } -}; - -// Create the ML.NET context. -var context = new MLContext(); - -// Create the data view from an IEnumerable. -// This method will use the definition of IrisData to understand what columns there are -// in the data view. However, the objects in ML.NET are only "promises" of data since -// ML.NET operations are lazy. One way to get a look at the data is with Schema Comprehension. -// Refer to this document for more information - https://github.com/dotnet/machinelearning/blob/master/docs/code/SchemaComprehension.md -var data = context.Data.LoadFromEnumerable(dataArray); - -// Use a FileStream to create a file. Use the stream and the data view in the "SaveAsBinary" method. -using(var stream = new FileStream("./iris.idv", FileMode.Create)) -{ - context.Data.SaveAsBinary(data, stream); -} -``` - -To read a binary file, simply use the `context.Data.ReadFromBinary` method and pass in the path of the binary file to read in. Notice that the schema of the data does not need to be defined here. - -```csharp -var data = context.Data.ReadFromBinary("./iris.idv"); -``` \ No newline at end of file diff --git a/src/Native/MatrixFactorizationNative/libmf b/src/Native/MatrixFactorizationNative/libmf index 5b055ea473..f92a18161b 160000 --- a/src/Native/MatrixFactorizationNative/libmf +++ b/src/Native/MatrixFactorizationNative/libmf @@ -1 +1 @@ -Subproject commit 5b055ea473756bd14f56b49db7e0483271788cc2 +Subproject commit f92a18161b6824fda4c4ab698a69d299a836841a From 90b19f90d6634667a5adf4b60df626f58081ba6a Mon Sep 17 00:00:00 2001 From: J W Date: Fri, 8 Mar 2019 07:19:00 -0500 Subject: [PATCH 08/11] Also update sample file for PR feedback --- .../Dynamic/DataOperations/SaveAndReadFromBinary.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs index 19e1264f88..02dfcf5ddd 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs @@ -9,7 +9,7 @@ public class SaveAndLoadFromBinary { public static void Example() { - var mlContext = new MLContext(); + MLContext mlContext = new MLContext(); // Get a small dataset as an IEnumerable. IEnumerable enumerableOfData = DatasetUtils.GetSampleTemperatureData(5); @@ -19,13 +19,13 @@ public static void Example() // Creating a FileStream object to create a file and use // the stream to create a binary file. - using (var stream = new FileStream("./sample-temp-data.idv", FileMode.Create)) + using (FileStream stream = new FileStream("./sample-temp-data.idv", FileMode.Create)) { mlContext.Data.SaveAsBinary(data, stream); } // Load a binary file by file path. - var binaryData = mlContext.Data.LoadFromBinary("./sample-temp-data.idv"); + IDataView binaryData = mlContext.Data.LoadFromBinary("./sample-temp-data.idv"); } } } From f1d1bf75e6fce03f1553e4d33a4981ab7b310bfa Mon Sep 17 00:00:00 2001 From: J W Date: Fri, 8 Mar 2019 17:53:37 -0500 Subject: [PATCH 09/11] Update cookbook sample code --- .../CookbookSamplesDynamicApi.cs | 35 ++++++------------- 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/CookbookSamples/CookbookSamplesDynamicApi.cs b/test/Microsoft.ML.Tests/Scenarios/Api/CookbookSamples/CookbookSamplesDynamicApi.cs index b102c42071..66ea9505f9 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/CookbookSamples/CookbookSamplesDynamicApi.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/CookbookSamples/CookbookSamplesDynamicApi.cs @@ -506,43 +506,30 @@ public override Action GetMapping() } } - public class IrisData - { - public float Label { get; set; } - public float SepalLength { get; set; } - public float SepalWidth { get; set; } - public float PetalLength { get; set; } - public float PetalWidth { get; set; } - } - [Fact] - public void ReadAndWriteBinaryData() => - BinaryData(); - - private void BinaryData() + public void ReadAndWriteBinaryData() { // An array of iris data points - var dataArray = new[] + IrisInput[] dataArray = new[] { - new IrisData { Label=1, PetalLength=1, SepalLength=1, PetalWidth=1, SepalWidth=1 }, - new IrisData { Label=0, PetalLength=2, SepalLength=2, PetalWidth=2, SepalWidth=2 } + new IrisInput { IgnoredLabel="1", PetalLength=1, SepalLength=1, PetalWidth=1, SepalWidth=1 }, + new IrisInput { IgnoredLabel="0", PetalLength=2, SepalLength=2, PetalWidth=2, SepalWidth=2 } }; // Create the ML.NET context. - var context = new MLContext(); + MLContext context = new MLContext(); - // Create the data view from an IEnumerable. - // This method will use the definition of IrisData to understand what columns there are - // in the data view. However, the objects in ML.NET are only "promises" of data since - // ML.NET operations are lazy. One way to get a look at the data is with Schema Comprehension. - // Refer to this document for more information - https://github.com/dotnet/machinelearning/blob/master/docs/code/SchemaComprehension.md - var data = context.Data.LoadFromEnumerable(dataArray); + // Assume that we already have an IDataView, which could be the result of loading text data, + // or the result of some transformation. + IDataView data = context.Data.LoadFromEnumerable(dataArray); // Use a FileStream to create a file. Use the stream and the data view in the "SaveAsBinary" method. - using (var stream = new FileStream("./iris.idv", FileMode.Create)) + using (FileStream stream = new FileStream("./iris.idv", FileMode.Create)) { context.Data.SaveAsBinary(data, stream); } + + DeleteOutputPath("iris.idv"); } private static void RunEndToEnd(MLContext mlContext, IDataView trainData, string modelPath) From 30c3ae073d398a96e88be389239c5556b0dbd794 Mon Sep 17 00:00:00 2001 From: J W Date: Sat, 9 Mar 2019 07:13:49 -0500 Subject: [PATCH 10/11] Revert submodule maybe? --- src/Native/MatrixFactorizationNative/libmf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Native/MatrixFactorizationNative/libmf b/src/Native/MatrixFactorizationNative/libmf index f92a18161b..5b055ea473 160000 --- a/src/Native/MatrixFactorizationNative/libmf +++ b/src/Native/MatrixFactorizationNative/libmf @@ -1 +1 @@ -Subproject commit f92a18161b6824fda4c4ab698a69d299a836841a +Subproject commit 5b055ea473756bd14f56b49db7e0483271788cc2 From ed2604e50fec1ed181c39d10b131febb8f786ad8 Mon Sep 17 00:00:00 2001 From: J W Date: Tue, 26 Mar 2019 08:26:13 -0400 Subject: [PATCH 11/11] Fix build error --- .../Dynamic/DataOperations/SaveAndReadFromBinary.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs b/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs index 02dfcf5ddd..4770881015 100644 --- a/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs +++ b/docs/samples/Microsoft.ML.Samples/Dynamic/DataOperations/SaveAndReadFromBinary.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using System.IO; -using Microsoft.Data.DataView; using Microsoft.ML.SamplesUtils; namespace Microsoft.ML.Samples.Dynamic.DataOperations