Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Making MF to be a part of ML.NET #1263

Merged
merged 49 commits into from
Oct 26, 2018
Merged
Show file tree
Hide file tree
Changes from 47 commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
eba36bd
Complie trainer (interface) and predictor of LibMF
wschin Oct 12, 2018
b615e5c
Add native files and make them compiled
wschin Oct 12, 2018
a733492
Make MF command line working (can do train and test)
wschin Oct 13, 2018
a3ecdd7
Merge branch 'master' into portmf
wschin Oct 13, 2018
9a776b0
Implement IEstimator and ITransformer for MF
wschin Oct 16, 2018
1ecde85
Make naive test running
wschin Oct 17, 2018
0f33f45
Merge branch 'portmf' of github.com:wschin/machinelearning into portmf
wschin Oct 17, 2018
f3dfc43
Add toy MF data set (~750 lines. 3 numbers per line.)
wschin Oct 17, 2018
a2d37ae
Add two tests and enable SSE
wschin Oct 17, 2018
3eb9f14
SSE3 is not supported by default (need to change SSE code so we disab…
wschin Oct 18, 2018
ec56fb0
Merge branch 'master' into portmf
wschin Oct 18, 2018
2048832
Honor recents changes on Schema
wschin Oct 18, 2018
4766500
Address some comments. Hopefully this time it builds without errors.
wschin Oct 18, 2018
c277c3b
Address comments
wschin Oct 18, 2018
cf7e664
Continue addressing comments
wschin Oct 18, 2018
fc8ec2b
Make LIBMF a submodule
wschin Oct 18, 2018
9f64dd2
No need to have copyright because LIBMF is submodule now
wschin Oct 19, 2018
721879a
Add doc strings for public functions
wschin Oct 19, 2018
7fe705b
Reference native part as a package
wschin Oct 20, 2018
3f2ca23
Simplify one line in CMake for LIBMF
wschin Oct 22, 2018
edbb953
Merge branch 'master' into portmf
wschin Oct 22, 2018
502c736
Use MLContext to calculate regression loss
wschin Oct 22, 2018
a5eeeb7
Try initialize submodules before build
wschin Oct 22, 2018
7672470
Revert "Try initialize submodules before build"
wschin Oct 22, 2018
6944f74
Try pull submodule again
wschin Oct 22, 2018
91b421c
Try to find malloc.h on Mac
wschin Oct 22, 2018
af14614
Fix namespace of FFM
wschin Oct 22, 2018
2b9afc4
Rename LIBMF to MatrixFactorization
wschin Oct 23, 2018
30708d3
Rename files because Linux build is not able to parse their paths cor…
wschin Oct 23, 2018
9dcad28
Put LIBMF's DLL into another directory rather than Microsoft.ML
wschin Oct 23, 2018
de6bdef
Rename LIBMF to MatrixFactorizationNative
wschin Oct 23, 2018
1d3502e
Specify platform-dependent baselines and fix a package name
wschin Oct 23, 2018
5867136
Make two attributes internal and change the Nuget name of LIBMF
wschin Oct 23, 2018
b0f541e
Move submodule update to yml files
wschin Oct 23, 2018
9dd8835
Address some comments
wschin Oct 23, 2018
2d60a6f
Address comments
wschin Oct 24, 2018
9c332ef
Address comments
wschin Oct 24, 2018
4440c32
Try not to have submodule update in yml. Azure should just work.
wschin Oct 24, 2018
d2d1bf8
Use the nearest channel to do check and assert
wschin Oct 24, 2018
aac40db
Switch back to Host in constructor because env would be used to initi…
wschin Oct 24, 2018
1b199dd
Ctrl+R+G aka sort usings
wschin Oct 24, 2018
01e73a5
Merge two tests and remove an empty line
wschin Oct 24, 2018
cc9ccb2
Massively renaming
wschin Oct 24, 2018
f06d094
Conduct renaming for a missing piece
wschin Oct 24, 2018
eafdcf8
Minor name changes
wschin Oct 24, 2018
00f642d
Add NOTICE file for the use of external packages
wschin Oct 25, 2018
6931444
Change package name
wschin Oct 25, 2018
83b5bb3
Merge branch 'master' into portmf
wschin Oct 25, 2018
e8aab70
remove empty lines
wschin Oct 25, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "src/Native/LIBMFNative/libmf"]
wschin marked this conversation as resolved.
Show resolved Hide resolved
path = src/Native/MatrixFactorizationNative/libmf
url = https://github.com/cjlin1/libmf.git
11 changes: 11 additions & 0 deletions Microsoft.ML.sln
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.Samples", "doc
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.SamplesUtils", "src\Microsoft.ML.SamplesUtils\Microsoft.ML.SamplesUtils.csproj", "{11A5210E-2EA7-42F1-80DB-827762E9C781}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.Recommender", "src\Microsoft.ML.Recommender\Microsoft.ML.Recommender.csproj", "{C8E1772B-DFD9-4A4D-830D-6AAB1C668BB3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -501,6 +503,14 @@ Global
{11A5210E-2EA7-42F1-80DB-827762E9C781}.Release|Any CPU.Build.0 = Release|Any CPU
{11A5210E-2EA7-42F1-80DB-827762E9C781}.Release-Intrinsics|Any CPU.ActiveCfg = Release-Intrinsics|Any CPU
{11A5210E-2EA7-42F1-80DB-827762E9C781}.Release-Intrinsics|Any CPU.Build.0 = Release-Intrinsics|Any CPU
{C8E1772B-DFD9-4A4D-830D-6AAB1C668BB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C8E1772B-DFD9-4A4D-830D-6AAB1C668BB3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C8E1772B-DFD9-4A4D-830D-6AAB1C668BB3}.Debug-Intrinsics|Any CPU.ActiveCfg = Debug-Intrinsics|Any CPU
{C8E1772B-DFD9-4A4D-830D-6AAB1C668BB3}.Debug-Intrinsics|Any CPU.Build.0 = Debug-Intrinsics|Any CPU
{C8E1772B-DFD9-4A4D-830D-6AAB1C668BB3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C8E1772B-DFD9-4A4D-830D-6AAB1C668BB3}.Release|Any CPU.Build.0 = Release|Any CPU
{C8E1772B-DFD9-4A4D-830D-6AAB1C668BB3}.Release-Intrinsics|Any CPU.ActiveCfg = Release-Intrinsics|Any CPU
{C8E1772B-DFD9-4A4D-830D-6AAB1C668BB3}.Release-Intrinsics|Any CPU.Build.0 = Release-Intrinsics|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -556,6 +566,7 @@ Global
{4B101D58-E7E4-4877-A536-A9B41E2E82A3} = {AED9C836-31E3-4F3F-8ABC-929555D3F3C4}
{ECB71297-9DF1-48CE-B93A-CD969221F9B6} = {DA452A53-2E94-4433-B08C-041EDEC729E6}
{11A5210E-2EA7-42F1-80DB-827762E9C781} = {09EADF06-BE25-4228-AB53-95AE3E15B530}
{C8E1772B-DFD9-4A4D-830D-6AAB1C668BB3} = {09EADF06-BE25-4228-AB53-95AE3E15B530}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {41165AF1-35BB-4832-A189-73060F82B01D}
Expand Down
82 changes: 82 additions & 0 deletions THIRD-PARTY-NOTICES.TXT
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
ML.NET uses third-party libraries or other resources that may be

distributed under licenses different than the ML.NET software.
wschin marked this conversation as resolved.
Show resolved Hide resolved



In the event that we accidentally failed to list a required notice, please

bring it to our attention. Post an issue or email us:



dotnet@microsoft.com
wschin marked this conversation as resolved.
Show resolved Hide resolved



The attached notices are provided for information only.



License notice for LIBMF

-------------------------------
Copyright (c) 2014-2015 The LIBMF Project.

All rights reserved.



Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions

are met:



1. Redistributions of source code must retain the above copyright

notice, this list of conditions and the following disclaimer.



2. Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in the

documentation and/or other materials provided with the distribution.



3. Neither name of copyright holders nor the names of its contributors

may be used to endorse or promote products derived from this software

without specific prior written permission.





THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS

``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT

LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR

A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR

CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR

PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF

LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk" DefaultTargets="Pack">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageDescription>LIBMF, the core computation library for matrix factorization in ML.NET</PackageDescription>
</PropertyGroup>

<ItemGroup>
<Content Include="..\common\CommonPackage.props" Pack="true" PackagePath="build\netstandard2.0\$(MSBuildProjectName).props" />
wschin marked this conversation as resolved.
Show resolved Hide resolved
<Content Include="$(SourceDir)Native\MatrixFactorizationNative\libmf\COPYRIGHT" Pack="true" PackagePath=".\" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<Project DefaultTargets="Pack">

<Import Project="Microsoft.ML.MatrixFactorization.nupkgproj" />

</Project>
3 changes: 2 additions & 1 deletion src/Microsoft.ML.Console/Microsoft.ML.Console.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
<ProjectReference Include="..\Microsoft.ML.Onnx\Microsoft.ML.Onnx.csproj" />
<ProjectReference Include="..\Microsoft.ML.PCA\Microsoft.ML.PCA.csproj" />
<ProjectReference Include="..\Microsoft.ML.PipelineInference\Microsoft.ML.PipelineInference.csproj" />
<ProjectReference Include="..\Microsoft.ML.Recommender\Microsoft.ML.Recommender.csproj" />
<ProjectReference Include="..\Microsoft.ML.ResultProcessor\Microsoft.ML.ResultProcessor.csproj" />
<ProjectReference Include="..\Microsoft.ML.StandardLearners\Microsoft.ML.StandardLearners.csproj" />
<ProjectReference Include="..\Microsoft.ML.Sweeper\Microsoft.ML.Sweeper.csproj" />
Expand All @@ -35,4 +36,4 @@
<NativeAssemblyReference Include="SymSgdNative" />
</ItemGroup>

</Project>
</Project>
Loading