From 1088d68fd826030afc368a12e0e702e62f7b1db7 Mon Sep 17 00:00:00 2001 From: Krzysztof Cwalina Date: Mon, 7 May 2018 15:42:41 -0700 Subject: [PATCH 1/9] Benchmark --- Microsoft.ML.sln | 99 +++++++++++++++++++ .../Microsoft.ML.Benchmarks.csproj | 18 ++++ test/Microsoft.ML.Benchmarks/Program.cs | 46 +++++++++ .../TrainPredictionBench.cs | 79 +++++++++++++++ 4 files changed, 242 insertions(+) create mode 100644 test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj create mode 100644 test/Microsoft.ML.Benchmarks/Program.cs create mode 100644 test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs diff --git a/Microsoft.ML.sln b/Microsoft.ML.sln index 631f75088e..3f940710d1 100644 --- a/Microsoft.ML.sln +++ b/Microsoft.ML.sln @@ -85,100 +85,198 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "specs", "specs", "{2DEFC784 Documentation\specs\mvp.md = Documentation\specs\mvp.md EndProjectSection EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.Benchmarks", "test\Microsoft.ML.Benchmarks\Microsoft.ML.Benchmarks.csproj", "{77705689-F08D-44B5-A775-3F844EE744AC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Debug|x64.ActiveCfg = Debug|Any CPU + {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Debug|x64.Build.0 = Debug|Any CPU {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Release|Any CPU.ActiveCfg = Release|Any CPU {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Release|Any CPU.Build.0 = Release|Any CPU + {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Release|x64.ActiveCfg = Release|Any CPU + {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Release|x64.Build.0 = Release|Any CPU {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Debug|x64.ActiveCfg = Debug|Any CPU + {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Debug|x64.Build.0 = Debug|Any CPU {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Release|Any CPU.ActiveCfg = Release|Any CPU {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Release|Any CPU.Build.0 = Release|Any CPU + {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Release|x64.ActiveCfg = Release|Any CPU + {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Release|x64.Build.0 = Release|Any CPU {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Debug|x64.ActiveCfg = Debug|Any CPU + {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Debug|x64.Build.0 = Debug|Any CPU {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Release|Any CPU.ActiveCfg = Release|Any CPU {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Release|Any CPU.Build.0 = Release|Any CPU + {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Release|x64.ActiveCfg = Release|Any CPU + {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Release|x64.Build.0 = Release|Any CPU {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Debug|x64.ActiveCfg = Debug|Any CPU + {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Debug|x64.Build.0 = Debug|Any CPU {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Release|Any CPU.ActiveCfg = Release|Any CPU {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Release|Any CPU.Build.0 = Release|Any CPU + {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Release|x64.ActiveCfg = Release|Any CPU + {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Release|x64.Build.0 = Release|Any CPU {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Debug|x64.ActiveCfg = Debug|Any CPU + {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Debug|x64.Build.0 = Debug|Any CPU {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Release|Any CPU.ActiveCfg = Release|Any CPU {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Release|Any CPU.Build.0 = Release|Any CPU + {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Release|x64.ActiveCfg = Release|Any CPU + {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Release|x64.Build.0 = Release|Any CPU {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Debug|x64.ActiveCfg = Debug|Any CPU + {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Debug|x64.Build.0 = Debug|Any CPU {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Release|Any CPU.ActiveCfg = Release|Any CPU {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Release|Any CPU.Build.0 = Release|Any CPU + {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Release|x64.ActiveCfg = Release|Any CPU + {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Release|x64.Build.0 = Release|Any CPU {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Debug|x64.ActiveCfg = Debug|Any CPU + {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Debug|x64.Build.0 = Debug|Any CPU {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Release|Any CPU.ActiveCfg = Release|Any CPU {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Release|Any CPU.Build.0 = Release|Any CPU + {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Release|x64.ActiveCfg = Release|Any CPU + {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Release|x64.Build.0 = Release|Any CPU {707BB22C-7E5F-497A-8C2F-74578F675705}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {707BB22C-7E5F-497A-8C2F-74578F675705}.Debug|Any CPU.Build.0 = Debug|Any CPU + {707BB22C-7E5F-497A-8C2F-74578F675705}.Debug|x64.ActiveCfg = Debug|Any CPU + {707BB22C-7E5F-497A-8C2F-74578F675705}.Debug|x64.Build.0 = Debug|Any CPU {707BB22C-7E5F-497A-8C2F-74578F675705}.Release|Any CPU.ActiveCfg = Release|Any CPU {707BB22C-7E5F-497A-8C2F-74578F675705}.Release|Any CPU.Build.0 = Release|Any CPU + {707BB22C-7E5F-497A-8C2F-74578F675705}.Release|x64.ActiveCfg = Release|Any CPU + {707BB22C-7E5F-497A-8C2F-74578F675705}.Release|x64.Build.0 = Release|Any CPU {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Debug|x64.ActiveCfg = Debug|Any CPU + {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Debug|x64.Build.0 = Debug|Any CPU {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Release|Any CPU.ActiveCfg = Release|Any CPU {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Release|Any CPU.Build.0 = Release|Any CPU + {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Release|x64.ActiveCfg = Release|Any CPU + {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Release|x64.Build.0 = Release|Any CPU {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Debug|x64.ActiveCfg = Debug|Any CPU + {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Debug|x64.Build.0 = Debug|Any CPU {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Release|Any CPU.ActiveCfg = Release|Any CPU {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Release|Any CPU.Build.0 = Release|Any CPU + {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Release|x64.ActiveCfg = Release|Any CPU + {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Release|x64.Build.0 = Release|Any CPU {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Debug|x64.ActiveCfg = Debug|Any CPU + {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Debug|x64.Build.0 = Debug|Any CPU {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Release|Any CPU.ActiveCfg = Release|Any CPU {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Release|Any CPU.Build.0 = Release|Any CPU + {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Release|x64.ActiveCfg = Release|Any CPU + {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Release|x64.Build.0 = Release|Any CPU {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Debug|x64.ActiveCfg = Debug|Any CPU + {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Debug|x64.Build.0 = Debug|Any CPU {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Release|Any CPU.ActiveCfg = Release|Any CPU {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Release|Any CPU.Build.0 = Release|Any CPU + {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Release|x64.ActiveCfg = Release|Any CPU + {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Release|x64.Build.0 = Release|Any CPU {D956E291-F6E5-4474-9023-91793F45ABEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D956E291-F6E5-4474-9023-91793F45ABEB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D956E291-F6E5-4474-9023-91793F45ABEB}.Debug|x64.ActiveCfg = Debug|Any CPU + {D956E291-F6E5-4474-9023-91793F45ABEB}.Debug|x64.Build.0 = Debug|Any CPU {D956E291-F6E5-4474-9023-91793F45ABEB}.Release|Any CPU.ActiveCfg = Release|Any CPU {D956E291-F6E5-4474-9023-91793F45ABEB}.Release|Any CPU.Build.0 = Release|Any CPU + {D956E291-F6E5-4474-9023-91793F45ABEB}.Release|x64.ActiveCfg = Release|Any CPU + {D956E291-F6E5-4474-9023-91793F45ABEB}.Release|x64.Build.0 = Release|Any CPU {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Debug|x64.ActiveCfg = Debug|Any CPU + {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Debug|x64.Build.0 = Debug|Any CPU {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Release|Any CPU.ActiveCfg = Release|Any CPU {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Release|Any CPU.Build.0 = Release|Any CPU + {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Release|x64.ActiveCfg = Release|Any CPU + {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Release|x64.Build.0 = Release|Any CPU {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Debug|x64.ActiveCfg = Debug|Any CPU + {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Debug|x64.Build.0 = Debug|Any CPU {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Release|Any CPU.ActiveCfg = Release|Any CPU {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Release|Any CPU.Build.0 = Release|Any CPU + {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Release|x64.ActiveCfg = Release|Any CPU + {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Release|x64.Build.0 = Release|Any CPU {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Debug|x64.ActiveCfg = Debug|Any CPU + {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Debug|x64.Build.0 = Debug|Any CPU {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Release|Any CPU.ActiveCfg = Release|Any CPU {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Release|Any CPU.Build.0 = Release|Any CPU + {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Release|x64.ActiveCfg = Release|Any CPU + {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Release|x64.Build.0 = Release|Any CPU {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Debug|x64.ActiveCfg = Debug|Any CPU + {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Debug|x64.Build.0 = Debug|Any CPU {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Release|Any CPU.ActiveCfg = Release|Any CPU {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Release|Any CPU.Build.0 = Release|Any CPU + {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Release|x64.ActiveCfg = Release|Any CPU + {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Release|x64.Build.0 = Release|Any CPU {6B047E09-39C9-4583-96F3-685D84CA4117}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6B047E09-39C9-4583-96F3-685D84CA4117}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B047E09-39C9-4583-96F3-685D84CA4117}.Debug|x64.ActiveCfg = Debug|Any CPU + {6B047E09-39C9-4583-96F3-685D84CA4117}.Debug|x64.Build.0 = Debug|Any CPU {6B047E09-39C9-4583-96F3-685D84CA4117}.Release|Any CPU.ActiveCfg = Release|Any CPU {6B047E09-39C9-4583-96F3-685D84CA4117}.Release|Any CPU.Build.0 = Release|Any CPU + {6B047E09-39C9-4583-96F3-685D84CA4117}.Release|x64.ActiveCfg = Release|Any CPU + {6B047E09-39C9-4583-96F3-685D84CA4117}.Release|x64.Build.0 = Release|Any CPU {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Debug|x64.ActiveCfg = Debug|Any CPU + {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Debug|x64.Build.0 = Debug|Any CPU {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Release|Any CPU.ActiveCfg = Release|Any CPU {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Release|Any CPU.Build.0 = Release|Any CPU + {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Release|x64.ActiveCfg = Release|Any CPU + {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Release|x64.Build.0 = Release|Any CPU {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Debug|x64.ActiveCfg = Debug|Any CPU + {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Debug|x64.Build.0 = Debug|Any CPU {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Release|Any CPU.ActiveCfg = Release|Any CPU {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Release|Any CPU.Build.0 = Release|Any CPU + {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Release|x64.ActiveCfg = Release|Any CPU + {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Release|x64.Build.0 = Release|Any CPU {16BB1454-2108-40E5-B3A6-594654005303}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {16BB1454-2108-40E5-B3A6-594654005303}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16BB1454-2108-40E5-B3A6-594654005303}.Debug|x64.ActiveCfg = Debug|Any CPU + {16BB1454-2108-40E5-B3A6-594654005303}.Debug|x64.Build.0 = Debug|Any CPU {16BB1454-2108-40E5-B3A6-594654005303}.Release|Any CPU.ActiveCfg = Release|Any CPU {16BB1454-2108-40E5-B3A6-594654005303}.Release|Any CPU.Build.0 = Release|Any CPU + {16BB1454-2108-40E5-B3A6-594654005303}.Release|x64.ActiveCfg = Release|Any CPU + {16BB1454-2108-40E5-B3A6-594654005303}.Release|x64.Build.0 = Release|Any CPU {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Debug|x64.ActiveCfg = Debug|Any CPU + {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Debug|x64.Build.0 = Debug|Any CPU {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Release|Any CPU.ActiveCfg = Release|Any CPU {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Release|Any CPU.Build.0 = Release|Any CPU + {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Release|x64.ActiveCfg = Release|Any CPU + {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Release|x64.Build.0 = Release|Any CPU + {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|Any CPU.ActiveCfg = Debug|x64 + {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|x64.ActiveCfg = Debug|x64 + {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|x64.Build.0 = Debug|x64 + {77705689-F08D-44B5-A775-3F844EE744AC}.Release|Any CPU.ActiveCfg = Release|x64 + {77705689-F08D-44B5-A775-3F844EE744AC}.Release|x64.ActiveCfg = Release|x64 + {77705689-F08D-44B5-A775-3F844EE744AC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -210,6 +308,7 @@ Global {52794B40-AB8A-41AF-9EF7-799C80D6E0BC} = {E20AF96D-3F66-4065-8A89-BEE479D74536} {DB751004-5D49-4B88-B78F-29CA9887087D} = {E20AF96D-3F66-4065-8A89-BEE479D74536} {2DEFC784-F2B5-44EA-ABBB-0DCF3E689DAC} = {E20AF96D-3F66-4065-8A89-BEE479D74536} + {77705689-F08D-44B5-A775-3F844EE744AC} = {AED9C836-31E3-4F3F-8ABC-929555D3F3C4} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {41165AF1-35BB-4832-A189-73060F82B01D} diff --git a/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj b/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj new file mode 100644 index 0000000000..5a1a8571fb --- /dev/null +++ b/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj @@ -0,0 +1,18 @@ + + + Exe + 7.2 + net472 + x64 + + + + + + + + + + + + \ No newline at end of file diff --git a/test/Microsoft.ML.Benchmarks/Program.cs b/test/Microsoft.ML.Benchmarks/Program.cs new file mode 100644 index 0000000000..2610209a90 --- /dev/null +++ b/test/Microsoft.ML.Benchmarks/Program.cs @@ -0,0 +1,46 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using BenchmarkDotNet.Configs; +using BenchmarkDotNet.Diagnosers; +using BenchmarkDotNet.Jobs; +using BenchmarkDotNet.Running; +using System.IO; + +namespace Microsoft.ML.Benchmarks +{ + public class Program + { + /// + /// execute dotnet run -c Release and choose the benchmarks you want to run + /// + /// + public static void Main(string[] args) + { + BenchmarkSwitcher + .FromAssembly(typeof(Program).Assembly) + .Run(null, CreateClrVsCoreConfig()); + } + + private static IConfig CreateClrVsCoreConfig() + { + var config = DefaultConfig.Instance.With( + Job.ShortRun. + With(BenchmarkDotNet.Environments.Platform.X64)). + With(MemoryDiagnoser.Default); + return config; + } + + internal static string GetDataPath(string name) + => Path.GetFullPath(Path.Combine(_dataRoot, name)); + + static readonly string _dataRoot; + static Program() + { + var currentAssemblyLocation = new FileInfo(typeof(Program).Assembly.Location); + var rootDir = currentAssemblyLocation.Directory.Parent.Parent.Parent.Parent.FullName; + _dataRoot = Path.Combine(rootDir, "test", "data"); + } + } +} diff --git a/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs b/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs new file mode 100644 index 0000000000..526232a939 --- /dev/null +++ b/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs @@ -0,0 +1,79 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using BenchmarkDotNet.Attributes; +using Microsoft.ML.Runtime.Api; +using Microsoft.ML.Trainers; +using Microsoft.ML.Transforms; + + +namespace Microsoft.ML.Benchmarks +{ + public class TrainPredictionBench + { + [Benchmark] + [MemoryDiagnoser] + public void Iris() + { + var dataPath = Program.GetDataPath("iris.txt"); + var pipeline = new LearningPipeline(); + + pipeline.Add(new TextLoader(dataPath, useHeader: true, separator: "tab")); + pipeline.Add(new ColumnConcatenator(outputColumn: "Features", + "SepalLength", "SepalWidth", "PetalLength", "PetalWidth")); + + pipeline.Add(new StochasticDualCoordinateAscentClassifier()); + + PredictionModel model = pipeline.Train(); + + IrisPrediction prediction = model.Predict(new IrisData() + { + SepalLength = 3.3f, + SepalWidth = 1.6f, + PetalLength = 0.2f, + PetalWidth = 5.1f, + }); + + prediction = model.Predict(new IrisData() + { + SepalLength = 3.1f, + SepalWidth = 5.5f, + PetalLength = 2.2f, + PetalWidth = 6.4f, + }); + + prediction = model.Predict(new IrisData() + { + SepalLength = 3.1f, + SepalWidth = 2.5f, + PetalLength = 1.2f, + PetalWidth = 4.4f, + }); + } + + public class IrisData + { + [Column("0")] + public float Label; + + [Column("1")] + public float SepalLength; + + [Column("2")] + public float SepalWidth; + + [Column("3")] + public float PetalLength; + + [Column("4")] + public float PetalWidth; + } + + public class IrisPrediction + { + [ColumnName("Score")] + public float[] PredictedLabels; + } + } +} From 0f5ce0c2baf25f46050a75506c2194cab9009e8b Mon Sep 17 00:00:00 2001 From: Krzysztof Cwalina Date: Mon, 7 May 2018 18:09:50 -0700 Subject: [PATCH 2/9] Changed to .NET Core app --- .../Microsoft.ML.Benchmarks.csproj | 4 ++-- test/Microsoft.ML.Benchmarks/Program.cs | 8 +++++--- test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj b/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj index 5a1a8571fb..8ec2a2864b 100644 --- a/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj +++ b/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj @@ -2,8 +2,8 @@ Exe 7.2 - net472 - x64 + netcoreapp2.0 + Microsoft.ML.Benchmarks.Program diff --git a/test/Microsoft.ML.Benchmarks/Program.cs b/test/Microsoft.ML.Benchmarks/Program.cs index 2610209a90..fe293b590c 100644 --- a/test/Microsoft.ML.Benchmarks/Program.cs +++ b/test/Microsoft.ML.Benchmarks/Program.cs @@ -6,17 +6,19 @@ using BenchmarkDotNet.Diagnosers; using BenchmarkDotNet.Jobs; using BenchmarkDotNet.Running; +using BenchmarkDotNet.Toolchains.CsProj; +using BenchmarkDotNet.Toolchains.InProcess; using System.IO; namespace Microsoft.ML.Benchmarks { - public class Program + class Program { /// /// execute dotnet run -c Release and choose the benchmarks you want to run /// /// - public static void Main(string[] args) + static void Main(string[] args) { BenchmarkSwitcher .FromAssembly(typeof(Program).Assembly) @@ -27,7 +29,7 @@ private static IConfig CreateClrVsCoreConfig() { var config = DefaultConfig.Instance.With( Job.ShortRun. - With(BenchmarkDotNet.Environments.Platform.X64)). + With(InProcessToolchain.Instance)). With(MemoryDiagnoser.Default); return config; } diff --git a/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs b/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs index 526232a939..693acfe7b7 100644 --- a/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs +++ b/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs @@ -10,10 +10,10 @@ namespace Microsoft.ML.Benchmarks { + [KeepBenchmarkFiles] public class TrainPredictionBench { [Benchmark] - [MemoryDiagnoser] public void Iris() { var dataPath = Program.GetDataPath("iris.txt"); From 1647ef59d4b33c582786eecda570bfea65fa7ca8 Mon Sep 17 00:00:00 2001 From: Krzysztof Cwalina Date: Tue, 8 May 2018 11:39:39 -0700 Subject: [PATCH 3/9] Added Accuracy Reporting --- .../Microsoft.ML.Benchmarks.csproj | 5 +++ test/Microsoft.ML.Benchmarks/Program.cs | 42 +++++++++++++++++++ .../TrainPredictionBench.cs | 18 +++++++- 3 files changed, 63 insertions(+), 2 deletions(-) diff --git a/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj b/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj index 8ec2a2864b..5bcf405c32 100644 --- a/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj +++ b/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj @@ -5,6 +5,11 @@ netcoreapp2.0 Microsoft.ML.Benchmarks.Program + + + + + diff --git a/test/Microsoft.ML.Benchmarks/Program.cs b/test/Microsoft.ML.Benchmarks/Program.cs index fe293b590c..58fdd9daa8 100644 --- a/test/Microsoft.ML.Benchmarks/Program.cs +++ b/test/Microsoft.ML.Benchmarks/Program.cs @@ -6,9 +6,17 @@ using BenchmarkDotNet.Diagnosers; using BenchmarkDotNet.Jobs; using BenchmarkDotNet.Running; +using BenchmarkDotNet.Columns; +using BenchmarkDotNet.Reports; using BenchmarkDotNet.Toolchains.CsProj; using BenchmarkDotNet.Toolchains.InProcess; +using System; using System.IO; +using Microsoft.ML.Models; +using Microsoft.ML.Runtime.Api; +using Microsoft.ML.Trainers; +using Microsoft.ML.Transforms; +using Microsoft.ML.Benchmarks; namespace Microsoft.ML.Benchmarks { @@ -30,6 +38,7 @@ private static IConfig CreateClrVsCoreConfig() var config = DefaultConfig.Instance.With( Job.ShortRun. With(InProcessToolchain.Instance)). + With(new ClassificationMetricsColumn("AccuracyMacro", "Macro-average accuracy of the model")). With(MemoryDiagnoser.Default); return config; } @@ -45,4 +54,37 @@ static Program() _dataRoot = Path.Combine(rootDir, "test", "data"); } } + + + public class ClassificationMetricsColumn : IColumn + { + string _metricName; + string _legend; + + public ClassificationMetricsColumn(string metricName, string legend) + { + _metricName = metricName; + _legend = legend; + } + + public string ColumnName => _metricName; + public string Id => _metricName; + public string Legend => _legend; + public bool IsNumeric => true; + public bool IsDefault(Summary summary, Benchmark benchmark) => true; + public bool IsAvailable(Summary summary) => true; + public bool AlwaysShow => true; + public ColumnCategory Category => ColumnCategory.Custom; + public int PriorityInCategory => 1; + public UnitType UnitType => UnitType.Dimensionless; + + public string GetValue(Summary summary, Benchmark benchmark, ISummaryStyle style) + { + var property = typeof(ClassificationMetrics).GetProperty(_metricName); + return property.GetValue(TrainPredictionBench.s_metrics).ToString(); + } + public string GetValue(Summary summary, Benchmark benchmark) => GetValue(summary, benchmark, null); + + public override string ToString() => ColumnName; + } } diff --git a/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs b/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs index 693acfe7b7..8c11dc53eb 100644 --- a/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs +++ b/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs @@ -3,16 +3,28 @@ // See the LICENSE file in the project root for more information. using BenchmarkDotNet.Attributes; +using BenchmarkDotNet.Running; +using Microsoft.ML.Models; using Microsoft.ML.Runtime.Api; using Microsoft.ML.Trainers; using Microsoft.ML.Transforms; - namespace Microsoft.ML.Benchmarks { - [KeepBenchmarkFiles] public class TrainPredictionBench { + internal static ClassificationMetrics s_metrics; + static PredictionModel s_trainedModel; + + [GlobalCleanup] + public void Accuracy() + { + var dataPath = Program.GetDataPath("iris.txt"); + var testData = new TextLoader(dataPath, useHeader: true, separator: "tab"); + var evaluator = new ClassificationEvaluator(); + s_metrics = evaluator.Evaluate(s_trainedModel, testData); + } + [Benchmark] public void Iris() { @@ -50,6 +62,8 @@ public void Iris() PetalLength = 1.2f, PetalWidth = 4.4f, }); + + s_trainedModel = model; } public class IrisData From 2b163cf412a53803c6793b5e6af8e172ef34951c Mon Sep 17 00:00:00 2001 From: Krzysztof Cwalina Date: Tue, 8 May 2018 14:03:01 -0700 Subject: [PATCH 4/9] fixed build --- Microsoft.ML.sln | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Microsoft.ML.sln b/Microsoft.ML.sln index 3f940710d1..d43dd72980 100644 --- a/Microsoft.ML.sln +++ b/Microsoft.ML.sln @@ -271,12 +271,14 @@ Global {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Release|Any CPU.Build.0 = Release|Any CPU {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Release|x64.ActiveCfg = Release|Any CPU {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Release|x64.Build.0 = Release|Any CPU - {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|Any CPU.ActiveCfg = Debug|x64 - {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|x64.ActiveCfg = Debug|x64 - {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|x64.Build.0 = Debug|x64 - {77705689-F08D-44B5-A775-3F844EE744AC}.Release|Any CPU.ActiveCfg = Release|x64 - {77705689-F08D-44B5-A775-3F844EE744AC}.Release|x64.ActiveCfg = Release|x64 - {77705689-F08D-44B5-A775-3F844EE744AC}.Release|x64.Build.0 = Release|x64 + {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|x64.ActiveCfg = Debug|Any CPU + {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|x64.Build.0 = Debug|Any CPU + {77705689-F08D-44B5-A775-3F844EE744AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77705689-F08D-44B5-A775-3F844EE744AC}.Release|Any CPU.Build.0 = Release|Any CPU + {77705689-F08D-44B5-A775-3F844EE744AC}.Release|x64.ActiveCfg = Release|Any CPU + {77705689-F08D-44B5-A775-3F844EE744AC}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 335ead1a2b1b2b396f40db5f582e1c66378ffe0a Mon Sep 17 00:00:00 2001 From: Krzysztof Cwalina Date: Wed, 9 May 2018 09:18:05 -0700 Subject: [PATCH 5/9] Feedback from Gleb --- test/Microsoft.ML.Benchmarks/Program.cs | 2 +- .../TrainPredictionBench.cs | 72 ++++++++++++------- 2 files changed, 47 insertions(+), 27 deletions(-) diff --git a/test/Microsoft.ML.Benchmarks/Program.cs b/test/Microsoft.ML.Benchmarks/Program.cs index 58fdd9daa8..0a35f7695c 100644 --- a/test/Microsoft.ML.Benchmarks/Program.cs +++ b/test/Microsoft.ML.Benchmarks/Program.cs @@ -81,7 +81,7 @@ public ClassificationMetricsColumn(string metricName, string legend) public string GetValue(Summary summary, Benchmark benchmark, ISummaryStyle style) { var property = typeof(ClassificationMetrics).GetProperty(_metricName); - return property.GetValue(TrainPredictionBench.s_metrics).ToString(); + return property.GetValue(StochasticDualCoordinateAscentClassifierBench.s_metrics).ToString(); } public string GetValue(Summary summary, Benchmark benchmark) => GetValue(summary, benchmark, null); diff --git a/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs b/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs index 8c11dc53eb..fb33d052fb 100644 --- a/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs +++ b/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs @@ -11,35 +11,16 @@ namespace Microsoft.ML.Benchmarks { - public class TrainPredictionBench + public class StochasticDualCoordinateAscentClassifierBench { internal static ClassificationMetrics s_metrics; - static PredictionModel s_trainedModel; - - [GlobalCleanup] - public void Accuracy() - { - var dataPath = Program.GetDataPath("iris.txt"); - var testData = new TextLoader(dataPath, useHeader: true, separator: "tab"); - var evaluator = new ClassificationEvaluator(); - s_metrics = evaluator.Evaluate(s_trainedModel, testData); - } + private static PredictionModel s_trainedModel; + private static string s_dataPath; [Benchmark] - public void Iris() + public void PredictIris() { - var dataPath = Program.GetDataPath("iris.txt"); - var pipeline = new LearningPipeline(); - - pipeline.Add(new TextLoader(dataPath, useHeader: true, separator: "tab")); - pipeline.Add(new ColumnConcatenator(outputColumn: "Features", - "SepalLength", "SepalWidth", "PetalLength", "PetalWidth")); - - pipeline.Add(new StochasticDualCoordinateAscentClassifier()); - - PredictionModel model = pipeline.Train(); - - IrisPrediction prediction = model.Predict(new IrisData() + IrisPrediction prediction = s_trainedModel.Predict(new IrisData() { SepalLength = 3.3f, SepalWidth = 1.6f, @@ -47,7 +28,7 @@ public void Iris() PetalWidth = 5.1f, }); - prediction = model.Predict(new IrisData() + prediction = s_trainedModel.Predict(new IrisData() { SepalLength = 3.1f, SepalWidth = 5.5f, @@ -55,17 +36,56 @@ public void Iris() PetalWidth = 6.4f, }); - prediction = model.Predict(new IrisData() + prediction = s_trainedModel.Predict(new IrisData() { SepalLength = 3.1f, SepalWidth = 2.5f, PetalLength = 1.2f, PetalWidth = 4.4f, }); + } + + [Benchmark] + public void TrainIris() + { + var pipeline = new LearningPipeline(); + + pipeline.Add(new TextLoader(s_dataPath, useHeader: true, separator: "tab")); + pipeline.Add(new ColumnConcatenator(outputColumn: "Features", + "SepalLength", "SepalWidth", "PetalLength", "PetalWidth")); + + pipeline.Add(new StochasticDualCoordinateAscentClassifier()); + + PredictionModel model = pipeline.Train(); s_trainedModel = model; } + [GlobalSetup] + public void Setup() + { + s_dataPath = Program.GetDataPath("iris.txt"); + s_trainedModel = TrainCore(); + + var testData = new TextLoader(s_dataPath, useHeader: true, separator: "tab"); + var evaluator = new ClassificationEvaluator(); + s_metrics = evaluator.Evaluate(s_trainedModel, testData); + } + + private static PredictionModel TrainCore() + { + var pipeline = new LearningPipeline(); + + pipeline.Add(new TextLoader(s_dataPath, useHeader: true, separator: "tab")); + pipeline.Add(new ColumnConcatenator(outputColumn: "Features", + "SepalLength", "SepalWidth", "PetalLength", "PetalWidth")); + + pipeline.Add(new StochasticDualCoordinateAscentClassifier()); + + PredictionModel model = pipeline.Train(); + return model; + } + public class IrisData { [Column("0")] From cf144abcf5587e03f15a2322fa41af1cc38b223f Mon Sep 17 00:00:00 2001 From: Krzysztof Cwalina Date: Mon, 14 May 2018 09:50:13 -0700 Subject: [PATCH 6/9] Added batch prediction tests --- .../TrainPredictionBench.cs | 66 ++++++++++--------- 1 file changed, 36 insertions(+), 30 deletions(-) diff --git a/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs b/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs index fb33d052fb..617bfc19ec 100644 --- a/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs +++ b/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs @@ -8,6 +8,9 @@ using Microsoft.ML.Runtime.Api; using Microsoft.ML.Trainers; using Microsoft.ML.Transforms; +using System; +using System.Collections.Generic; +using System.Linq; namespace Microsoft.ML.Benchmarks { @@ -16,37 +19,19 @@ public class StochasticDualCoordinateAscentClassifierBench internal static ClassificationMetrics s_metrics; private static PredictionModel s_trainedModel; private static string s_dataPath; - - [Benchmark] - public void PredictIris() + private static IrisData[][] s_batches; + private static readonly int[] s_batchSizes = new int[] { 1, 2, 5 }; + private readonly Random r = new Random(0); + private readonly static IrisData s_example = new IrisData() { - IrisPrediction prediction = s_trainedModel.Predict(new IrisData() - { - SepalLength = 3.3f, - SepalWidth = 1.6f, - PetalLength = 0.2f, - PetalWidth = 5.1f, - }); - - prediction = s_trainedModel.Predict(new IrisData() - { - SepalLength = 3.1f, - SepalWidth = 5.5f, - PetalLength = 2.2f, - PetalWidth = 6.4f, - }); - - prediction = s_trainedModel.Predict(new IrisData() - { - SepalLength = 3.1f, - SepalWidth = 2.5f, - PetalLength = 1.2f, - PetalWidth = 4.4f, - }); - } + SepalLength = 3.3f, + SepalWidth = 1.6f, + PetalLength = 0.2f, + PetalWidth = 5.1f, + }; [Benchmark] - public void TrainIris() + public PredictionModel TrainIris() { var pipeline = new LearningPipeline(); @@ -57,19 +42,40 @@ public void TrainIris() pipeline.Add(new StochasticDualCoordinateAscentClassifier()); PredictionModel model = pipeline.Train(); - - s_trainedModel = model; + return model; } + [Benchmark] + public float[] PredictIris() => s_trainedModel.Predict(s_example).PredictedLabels; + + [Benchmark] + public IEnumerable PredictIrisBatchOf1() => s_trainedModel.Predict(s_batches[0]); + [Benchmark] + public IEnumerable PredictIrisBatchOf2() => s_trainedModel.Predict(s_batches[1]); + [Benchmark] + public IEnumerable PredictIrisBatchOf5() => s_trainedModel.Predict(s_batches[2]); + [GlobalSetup] public void Setup() { s_dataPath = Program.GetDataPath("iris.txt"); s_trainedModel = TrainCore(); + IrisPrediction prediction = s_trainedModel.Predict(s_example); var testData = new TextLoader(s_dataPath, useHeader: true, separator: "tab"); var evaluator = new ClassificationEvaluator(); s_metrics = evaluator.Evaluate(s_trainedModel, testData); + + s_batches = new IrisData[s_batchSizes.Length][]; + for (int i = 0; i < s_batches.Length; i++) + { + var batch = new IrisData[s_batchSizes[i]]; + s_batches[i] = batch; + for (int bi = 0; bi < batch.Length; bi++) + { + batch[bi] = s_example; + } + } } private static PredictionModel TrainCore() From 63fcb8ac89e0eb2ae791cff7c3c61c20f58baccc Mon Sep 17 00:00:00 2001 From: Krzysztof Cwalina Date: Mon, 14 May 2018 10:58:19 -0700 Subject: [PATCH 7/9] Resolved conflicts the sln file --- Microsoft.ML.sln | 124 +++++++++-------------------------------------- 1 file changed, 24 insertions(+), 100 deletions(-) diff --git a/Microsoft.ML.sln b/Microsoft.ML.sln index d43dd72980..c3815d87f3 100644 --- a/Microsoft.ML.sln +++ b/Microsoft.ML.sln @@ -85,200 +85,122 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "specs", "specs", "{2DEFC784 Documentation\specs\mvp.md = Documentation\specs\mvp.md EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.Benchmarks", "test\Microsoft.ML.Benchmarks\Microsoft.ML.Benchmarks.csproj", "{77705689-F08D-44B5-A775-3F844EE744AC}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pkg", "pkg", "{D3D38B03-B557-484D-8348-8BADEE4DF592}" + ProjectSection(SolutionItems) = preProject + pkg\Directory.Build.props = pkg\Directory.Build.props + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Microsoft.ML", "Microsoft.ML", "{DEC8F776-49F7-4D87-836C-FE4DC057D08C}" + ProjectSection(SolutionItems) = preProject + pkg\Microsoft.ML\Microsoft.ML.nupkgproj = pkg\Microsoft.ML\Microsoft.ML.nupkgproj + pkg\Microsoft.ML\Microsoft.ML.symbols.nupkgproj = pkg\Microsoft.ML\Microsoft.ML.symbols.nupkgproj + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Microsoft.ML.Parquet", "Microsoft.ML.Parquet", "{6C95FC87-F5F2-4EEF-BB97-567F2F5DD141}" + ProjectSection(SolutionItems) = preProject + pkg\Microsoft.ML.Parquet\Microsoft.ML.Parquet.nupkgproj = pkg\Microsoft.ML.Parquet\Microsoft.ML.Parquet.nupkgproj + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.Benchmarks", "test\Microsoft.ML.Benchmarks\Microsoft.ML.Benchmarks.csproj", "{7A9DB75F-2CA5-4184-9EF5-1F17EB39483F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Debug|x64.ActiveCfg = Debug|Any CPU - {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Debug|x64.Build.0 = Debug|Any CPU {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Release|Any CPU.ActiveCfg = Release|Any CPU {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Release|Any CPU.Build.0 = Release|Any CPU - {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Release|x64.ActiveCfg = Release|Any CPU - {A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}.Release|x64.Build.0 = Release|Any CPU {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Debug|x64.ActiveCfg = Debug|Any CPU - {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Debug|x64.Build.0 = Debug|Any CPU {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Release|Any CPU.ActiveCfg = Release|Any CPU {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Release|Any CPU.Build.0 = Release|Any CPU - {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Release|x64.ActiveCfg = Release|Any CPU - {EC743D1D-7691-43B7-B9B0-5F2F7018A8F6}.Release|x64.Build.0 = Release|Any CPU {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Debug|x64.ActiveCfg = Debug|Any CPU - {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Debug|x64.Build.0 = Debug|Any CPU {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Release|Any CPU.ActiveCfg = Release|Any CPU {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Release|Any CPU.Build.0 = Release|Any CPU - {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Release|x64.ActiveCfg = Release|Any CPU - {46F2F967-C23F-4076-858D-33F7DA9BD2DA}.Release|x64.Build.0 = Release|Any CPU {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Debug|x64.ActiveCfg = Debug|Any CPU - {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Debug|x64.Build.0 = Debug|Any CPU {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Release|Any CPU.ActiveCfg = Release|Any CPU {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Release|Any CPU.Build.0 = Release|Any CPU - {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Release|x64.ActiveCfg = Release|Any CPU - {2D7391C9-8254-4B8F-BF26-FADAF8F02F44}.Release|x64.Build.0 = Release|Any CPU {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Debug|x64.ActiveCfg = Debug|Any CPU - {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Debug|x64.Build.0 = Debug|Any CPU {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Release|Any CPU.ActiveCfg = Release|Any CPU {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Release|Any CPU.Build.0 = Release|Any CPU - {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Release|x64.ActiveCfg = Release|Any CPU - {E278EC99-E6EE-49FE-92E6-0A309A478D98}.Release|x64.Build.0 = Release|Any CPU {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Debug|x64.ActiveCfg = Debug|Any CPU - {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Debug|x64.Build.0 = Debug|Any CPU {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Release|Any CPU.ActiveCfg = Release|Any CPU {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Release|Any CPU.Build.0 = Release|Any CPU - {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Release|x64.ActiveCfg = Release|Any CPU - {AD92D96B-0E96-4F22-8DCE-892E13B1F282}.Release|x64.Build.0 = Release|Any CPU {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Debug|Any CPU.Build.0 = Debug|Any CPU - {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Debug|x64.ActiveCfg = Debug|Any CPU - {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Debug|x64.Build.0 = Debug|Any CPU {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Release|Any CPU.ActiveCfg = Release|Any CPU {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Release|Any CPU.Build.0 = Release|Any CPU - {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Release|x64.ActiveCfg = Release|Any CPU - {65D0603E-B96C-4DFC-BDD1-705891B88C18}.Release|x64.Build.0 = Release|Any CPU {707BB22C-7E5F-497A-8C2F-74578F675705}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {707BB22C-7E5F-497A-8C2F-74578F675705}.Debug|Any CPU.Build.0 = Debug|Any CPU - {707BB22C-7E5F-497A-8C2F-74578F675705}.Debug|x64.ActiveCfg = Debug|Any CPU - {707BB22C-7E5F-497A-8C2F-74578F675705}.Debug|x64.Build.0 = Debug|Any CPU {707BB22C-7E5F-497A-8C2F-74578F675705}.Release|Any CPU.ActiveCfg = Release|Any CPU {707BB22C-7E5F-497A-8C2F-74578F675705}.Release|Any CPU.Build.0 = Release|Any CPU - {707BB22C-7E5F-497A-8C2F-74578F675705}.Release|x64.ActiveCfg = Release|Any CPU - {707BB22C-7E5F-497A-8C2F-74578F675705}.Release|x64.Build.0 = Release|Any CPU {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Debug|x64.ActiveCfg = Debug|Any CPU - {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Debug|x64.Build.0 = Debug|Any CPU {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Release|Any CPU.ActiveCfg = Release|Any CPU {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Release|Any CPU.Build.0 = Release|Any CPU - {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Release|x64.ActiveCfg = Release|Any CPU - {2911A286-ECA4-4730-97A9-DA1FEE2DED97}.Release|x64.Build.0 = Release|Any CPU {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Debug|x64.ActiveCfg = Debug|Any CPU - {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Debug|x64.Build.0 = Debug|Any CPU {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Release|Any CPU.ActiveCfg = Release|Any CPU {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Release|Any CPU.Build.0 = Release|Any CPU - {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Release|x64.ActiveCfg = Release|Any CPU - {7288C084-11C0-43BE-AC7F-45DCFEAEEBF6}.Release|x64.Build.0 = Release|Any CPU {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Debug|x64.ActiveCfg = Debug|Any CPU - {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Debug|x64.Build.0 = Debug|Any CPU {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Release|Any CPU.ActiveCfg = Release|Any CPU {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Release|Any CPU.Build.0 = Release|Any CPU - {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Release|x64.ActiveCfg = Release|Any CPU - {F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A}.Release|x64.Build.0 = Release|Any CPU {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Debug|x64.ActiveCfg = Debug|Any CPU - {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Debug|x64.Build.0 = Debug|Any CPU {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Release|Any CPU.ActiveCfg = Release|Any CPU {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Release|Any CPU.Build.0 = Release|Any CPU - {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Release|x64.ActiveCfg = Release|Any CPU - {58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Release|x64.Build.0 = Release|Any CPU {D956E291-F6E5-4474-9023-91793F45ABEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D956E291-F6E5-4474-9023-91793F45ABEB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D956E291-F6E5-4474-9023-91793F45ABEB}.Debug|x64.ActiveCfg = Debug|Any CPU - {D956E291-F6E5-4474-9023-91793F45ABEB}.Debug|x64.Build.0 = Debug|Any CPU {D956E291-F6E5-4474-9023-91793F45ABEB}.Release|Any CPU.ActiveCfg = Release|Any CPU {D956E291-F6E5-4474-9023-91793F45ABEB}.Release|Any CPU.Build.0 = Release|Any CPU - {D956E291-F6E5-4474-9023-91793F45ABEB}.Release|x64.ActiveCfg = Release|Any CPU - {D956E291-F6E5-4474-9023-91793F45ABEB}.Release|x64.Build.0 = Release|Any CPU {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Debug|x64.ActiveCfg = Debug|Any CPU - {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Debug|x64.Build.0 = Debug|Any CPU {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Release|Any CPU.ActiveCfg = Release|Any CPU {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Release|Any CPU.Build.0 = Release|Any CPU - {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Release|x64.ActiveCfg = Release|Any CPU - {2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Release|x64.Build.0 = Release|Any CPU {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Debug|x64.ActiveCfg = Debug|Any CPU - {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Debug|x64.Build.0 = Debug|Any CPU {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Release|Any CPU.ActiveCfg = Release|Any CPU {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Release|Any CPU.Build.0 = Release|Any CPU - {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Release|x64.ActiveCfg = Release|Any CPU - {64BC22D3-1E76-41EF-94D8-C79E471FF2DD}.Release|x64.Build.0 = Release|Any CPU {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Debug|x64.ActiveCfg = Debug|Any CPU - {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Debug|x64.Build.0 = Debug|Any CPU {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Release|Any CPU.ActiveCfg = Release|Any CPU {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Release|Any CPU.Build.0 = Release|Any CPU - {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Release|x64.ActiveCfg = Release|Any CPU - {B5989C06-4FFA-46C1-9D85-9366B34AB0A2}.Release|x64.Build.0 = Release|Any CPU {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Debug|x64.ActiveCfg = Debug|Any CPU - {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Debug|x64.Build.0 = Debug|Any CPU {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Release|Any CPU.ActiveCfg = Release|Any CPU {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Release|Any CPU.Build.0 = Release|Any CPU - {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Release|x64.ActiveCfg = Release|Any CPU - {C4F7938F-7109-43C8-92A5-9BE47C7FF7D9}.Release|x64.Build.0 = Release|Any CPU {6B047E09-39C9-4583-96F3-685D84CA4117}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6B047E09-39C9-4583-96F3-685D84CA4117}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6B047E09-39C9-4583-96F3-685D84CA4117}.Debug|x64.ActiveCfg = Debug|Any CPU - {6B047E09-39C9-4583-96F3-685D84CA4117}.Debug|x64.Build.0 = Debug|Any CPU {6B047E09-39C9-4583-96F3-685D84CA4117}.Release|Any CPU.ActiveCfg = Release|Any CPU {6B047E09-39C9-4583-96F3-685D84CA4117}.Release|Any CPU.Build.0 = Release|Any CPU - {6B047E09-39C9-4583-96F3-685D84CA4117}.Release|x64.ActiveCfg = Release|Any CPU - {6B047E09-39C9-4583-96F3-685D84CA4117}.Release|x64.Build.0 = Release|Any CPU {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Debug|x64.ActiveCfg = Debug|Any CPU - {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Debug|x64.Build.0 = Debug|Any CPU {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Release|Any CPU.ActiveCfg = Release|Any CPU {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Release|Any CPU.Build.0 = Release|Any CPU - {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Release|x64.ActiveCfg = Release|Any CPU - {3769FCC3-9AFF-4C37-97E9-6854324681DF}.Release|x64.Build.0 = Release|Any CPU {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Debug|x64.ActiveCfg = Debug|Any CPU - {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Debug|x64.Build.0 = Debug|Any CPU {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Release|Any CPU.ActiveCfg = Release|Any CPU {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Release|Any CPU.Build.0 = Release|Any CPU - {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Release|x64.ActiveCfg = Release|Any CPU - {B7B593C5-FB8C-4ADA-A638-5B53B47D087E}.Release|x64.Build.0 = Release|Any CPU {16BB1454-2108-40E5-B3A6-594654005303}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {16BB1454-2108-40E5-B3A6-594654005303}.Debug|Any CPU.Build.0 = Debug|Any CPU - {16BB1454-2108-40E5-B3A6-594654005303}.Debug|x64.ActiveCfg = Debug|Any CPU - {16BB1454-2108-40E5-B3A6-594654005303}.Debug|x64.Build.0 = Debug|Any CPU {16BB1454-2108-40E5-B3A6-594654005303}.Release|Any CPU.ActiveCfg = Release|Any CPU {16BB1454-2108-40E5-B3A6-594654005303}.Release|Any CPU.Build.0 = Release|Any CPU - {16BB1454-2108-40E5-B3A6-594654005303}.Release|x64.ActiveCfg = Release|Any CPU - {16BB1454-2108-40E5-B3A6-594654005303}.Release|x64.Build.0 = Release|Any CPU {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Debug|Any CPU.Build.0 = Debug|Any CPU - {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Debug|x64.ActiveCfg = Debug|Any CPU - {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Debug|x64.Build.0 = Debug|Any CPU {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Release|Any CPU.ActiveCfg = Release|Any CPU {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Release|Any CPU.Build.0 = Release|Any CPU - {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Release|x64.ActiveCfg = Release|Any CPU - {55C8122D-79EA-48AB-85D0-EB551FC1C427}.Release|x64.Build.0 = Release|Any CPU - {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|x64.ActiveCfg = Debug|Any CPU - {77705689-F08D-44B5-A775-3F844EE744AC}.Debug|x64.Build.0 = Debug|Any CPU - {77705689-F08D-44B5-A775-3F844EE744AC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {77705689-F08D-44B5-A775-3F844EE744AC}.Release|Any CPU.Build.0 = Release|Any CPU - {77705689-F08D-44B5-A775-3F844EE744AC}.Release|x64.ActiveCfg = Release|Any CPU - {77705689-F08D-44B5-A775-3F844EE744AC}.Release|x64.Build.0 = Release|Any CPU + {7A9DB75F-2CA5-4184-9EF5-1F17EB39483F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A9DB75F-2CA5-4184-9EF5-1F17EB39483F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A9DB75F-2CA5-4184-9EF5-1F17EB39483F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A9DB75F-2CA5-4184-9EF5-1F17EB39483F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -310,7 +232,9 @@ Global {52794B40-AB8A-41AF-9EF7-799C80D6E0BC} = {E20AF96D-3F66-4065-8A89-BEE479D74536} {DB751004-5D49-4B88-B78F-29CA9887087D} = {E20AF96D-3F66-4065-8A89-BEE479D74536} {2DEFC784-F2B5-44EA-ABBB-0DCF3E689DAC} = {E20AF96D-3F66-4065-8A89-BEE479D74536} - {77705689-F08D-44B5-A775-3F844EE744AC} = {AED9C836-31E3-4F3F-8ABC-929555D3F3C4} + {DEC8F776-49F7-4D87-836C-FE4DC057D08C} = {D3D38B03-B557-484D-8348-8BADEE4DF592} + {6C95FC87-F5F2-4EEF-BB97-567F2F5DD141} = {D3D38B03-B557-484D-8348-8BADEE4DF592} + {7A9DB75F-2CA5-4184-9EF5-1F17EB39483F} = {AED9C836-31E3-4F3F-8ABC-929555D3F3C4} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {41165AF1-35BB-4832-A189-73060F82B01D} From 0a281b20c23a7e61abbdf79eba429f13458790a6 Mon Sep 17 00:00:00 2001 From: Krzysztof Cwalina Date: Mon, 14 May 2018 13:28:56 -0700 Subject: [PATCH 8/9] Renamed the new file to match type name --- ...nBench.cs => StochasticDualCoordinateAscentClassifierBench.cs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/Microsoft.ML.Benchmarks/{TrainPredictionBench.cs => StochasticDualCoordinateAscentClassifierBench.cs} (100%) diff --git a/test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs b/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs similarity index 100% rename from test/Microsoft.ML.Benchmarks/TrainPredictionBench.cs rename to test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs From b9b91e8596d0e99d0edb472bb8d295bdc1758d5c Mon Sep 17 00:00:00 2001 From: Krzysztof Cwalina Date: Mon, 14 May 2018 16:19:26 -0700 Subject: [PATCH 9/9] Removed duplicated method --- .../Microsoft.ML.Benchmarks.csproj | 4 ++-- test/Microsoft.ML.Benchmarks/Program.cs | 1 - ...tochasticDualCoordinateAscentClassifierBench.cs | 14 +------------- 3 files changed, 3 insertions(+), 16 deletions(-) diff --git a/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj b/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj index 5bcf405c32..735b6e1dd8 100644 --- a/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj +++ b/test/Microsoft.ML.Benchmarks/Microsoft.ML.Benchmarks.csproj @@ -1,9 +1,9 @@  Exe - 7.2 - netcoreapp2.0 + 7.2 Microsoft.ML.Benchmarks.Program + netcoreapp2.0 diff --git a/test/Microsoft.ML.Benchmarks/Program.cs b/test/Microsoft.ML.Benchmarks/Program.cs index 0a35f7695c..9203fde247 100644 --- a/test/Microsoft.ML.Benchmarks/Program.cs +++ b/test/Microsoft.ML.Benchmarks/Program.cs @@ -55,7 +55,6 @@ static Program() } } - public class ClassificationMetricsColumn : IColumn { string _metricName; diff --git a/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs b/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs index 617bfc19ec..e0583f58b7 100644 --- a/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs +++ b/test/Microsoft.ML.Benchmarks/StochasticDualCoordinateAscentClassifierBench.cs @@ -31,19 +31,7 @@ public class StochasticDualCoordinateAscentClassifierBench }; [Benchmark] - public PredictionModel TrainIris() - { - var pipeline = new LearningPipeline(); - - pipeline.Add(new TextLoader(s_dataPath, useHeader: true, separator: "tab")); - pipeline.Add(new ColumnConcatenator(outputColumn: "Features", - "SepalLength", "SepalWidth", "PetalLength", "PetalWidth")); - - pipeline.Add(new StochasticDualCoordinateAscentClassifier()); - - PredictionModel model = pipeline.Train(); - return model; - } + public PredictionModel TrainIris() => TrainCore(); [Benchmark] public float[] PredictIris() => s_trainedModel.Predict(s_example).PredictedLabels;