Skip to content

Commit d3274ea

Browse files
committed
Merge remote-tracking branch 'upstream/master' into Issue-4681
2 parents 0faa474 + 6f2e94f commit d3274ea

File tree

216 files changed

+2423
-866
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

216 files changed

+2423
-866
lines changed

.editorconfig

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,73 @@ root = true
22

33
[*.cs]
44
# Sort using directives with System.* appearing first
5-
dotnet_sort_system_directives_first = true
5+
dotnet_sort_system_directives_first = true
6+
7+
[test/**/*.cs]
8+
9+
# MSML_GeneralName: This name should be PascalCased
10+
dotnet_diagnostic.MSML_GeneralName.severity = none
11+
12+
# MSML_PrivateFieldName: Private field name not in: _camelCase format
13+
dotnet_diagnostic.MSML_PrivateFieldName.severity = none
14+
15+
# MSML_SingleVariableDeclaration: Have only a single variable present per declaration
16+
dotnet_diagnostic.MSML_SingleVariableDeclaration.severity = none
17+
18+
# MSML_NoBestFriendInternal: Cross-assembly internal access requires referenced item to have Microsoft.ML.BestFriendAttribute attribute.
19+
dotnet_diagnostic.MSML_NoBestFriendInternal.severity = none
20+
21+
# MSML_NoInstanceInitializers: No initializers on instance fields or properties
22+
dotnet_diagnostic.MSML_NoInstanceInitializers.severity = none
23+
24+
# MSML_ParameterLocalVarName: Parameter or local variable name not standard
25+
dotnet_diagnostic.MSML_ParameterLocalVarName.severity = none
26+
27+
[test/Microsoft.ML.CodeAnalyzer.Tests/**.cs]
28+
# BaseTestClass does not apply for analyzer testing.
29+
# MSML_ExtendBaseTestClass: Test classes should be derived from BaseTestClass
30+
dotnet_diagnostic.MSML_ExtendBaseTestClass.severity = none
31+
32+
[test/Microsoft.Extensions.ML.Tests/**.cs]
33+
# MSML_ExtendBaseTestClass: Test classes should be derived from BaseTestClass
34+
dotnet_diagnostic.MSML_ExtendBaseTestClass.severity = none
35+
36+
[test/Microsoft.ML.Tests/**.cs]
37+
# MSML_ExtendBaseTestClass: Test classes should be derived from BaseTestClass
38+
dotnet_diagnostic.MSML_ExtendBaseTestClass.severity = none
39+
40+
[test/Microsoft.ML.AutoML.Tests/**.cs]
41+
# MSML_ExtendBaseTestClass: Test classes should be derived from BaseTestClass
42+
dotnet_diagnostic.MSML_ExtendBaseTestClass.severity = none
43+
44+
[test/Microsoft.ML.Benchmarks.Tests/**.cs]
45+
# MSML_ExtendBaseTestClass: Test classes should be derived from BaseTestClass
46+
dotnet_diagnostic.MSML_ExtendBaseTestClass.severity = none
47+
48+
[test/Microsoft.ML.CodeGenerator.Tests/**.cs]
49+
# MSML_ExtendBaseTestClass: Test classes should be derived from BaseTestClass
50+
dotnet_diagnostic.MSML_ExtendBaseTestClass.severity = none
51+
52+
[test/Microsoft.ML.Core.Tests/**.cs]
53+
# MSML_ExtendBaseTestClass: Test classes should be derived from BaseTestClass
54+
dotnet_diagnostic.MSML_ExtendBaseTestClass.severity = none
55+
56+
[test/Microsoft.ML.CpuMath.UnitTests/**.cs]
57+
# MSML_ExtendBaseTestClass: Test classes should be derived from BaseTestClass
58+
dotnet_diagnostic.MSML_ExtendBaseTestClass.severity = none
59+
60+
[test/Microsoft.ML.Functional.Tests/**.cs]
61+
# MSML_ExtendBaseTestClass: Test classes should be derived from BaseTestClass
62+
dotnet_diagnostic.MSML_ExtendBaseTestClass.severity = none
63+
64+
[test/Microsoft.ML.Predictor.Tests/**.cs]
65+
# MSML_ExtendBaseTestClass: Test classes should be derived from BaseTestClass
66+
dotnet_diagnostic.MSML_ExtendBaseTestClass.severity = none
67+
68+
[test/Microsoft.ML.Sweeper.Tests/**.cs]
69+
# MSML_ExtendBaseTestClass: Test classes should be derived from BaseTestClass
70+
dotnet_diagnostic.MSML_ExtendBaseTestClass.severity = none
71+
72+
[test/Microsoft.ML.TimeSeries.Tests/**.cs]
73+
# MSML_ExtendBaseTestClass: Test classes should be derived from BaseTestClass
74+
dotnet_diagnostic.MSML_ExtendBaseTestClass.severity = none

.vsts-dotnet-ci.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ jobs:
2525
_configuration: Release-netcoreapp3_0
2626
_config_short: RI
2727
_includeBenchmarkData: true
28+
innerLoop: true
2829
pool:
2930
name: Hosted Ubuntu 1604
3031

@@ -33,13 +34,15 @@ jobs:
3334
name: Ubuntu_x64_NetCoreApp21
3435
buildScript: ./build.sh
3536
container: UbuntuContainer
37+
innerLoop: true
3638
pool:
3739
name: Hosted Ubuntu 1604
3840

3941
- template: /build/ci/job-template.yml
4042
parameters:
4143
name: MacOS_x64_NetCoreApp21
4244
buildScript: ./build.sh
45+
innerLoop: true
4346
pool:
4447
name: Hosted macOS High Sierra
4548

@@ -56,6 +59,7 @@ jobs:
5659
_configuration: Release-netcoreapp3_0
5760
_config_short: RI
5861
_includeBenchmarkData: true
62+
innerLoop: true
5963
pool:
6064
name: NetCorePublic-Pool
6165
queue: buildpool.windows.10.amd64.vs2017.open
@@ -64,6 +68,7 @@ jobs:
6468
parameters:
6569
name: Windows_x64_NetCoreApp21
6670
buildScript: build.cmd
71+
innerLoop: true
6772
pool:
6873
name: Hosted VS2017
6974

@@ -80,6 +85,7 @@ jobs:
8085
_configuration: Release-netfx
8186
_config_short: RFX
8287
_includeBenchmarkData: false
88+
innerLoop: true
8389
pool:
8490
name: Hosted VS2017
8591

@@ -88,5 +94,6 @@ jobs:
8894
name: Windows_x86_NetCoreApp21
8995
architecture: x86
9096
buildScript: build.cmd
97+
innerLoop: true
9198
pool:
9299
name: Hosted VS2017

Directory.Build.props

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@
9292

9393
<!-- Language configuration -->
9494
<PropertyGroup>
95-
<LangVersion>latest</LangVersion> <!-- default to allowing all language features -->
95+
<LangVersion Condition="'$(MSBuildProjectExtension)'=='.csproj'">8.0</LangVersion>
96+
<LangVersion Condition="'$(MSBuildProjectExtension)'=='.fsproj'">4.7</LangVersion>
9697
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
9798
</PropertyGroup>
9899

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ To build ML.NET from source please visit our [developers guide](docs/project-doc
8686
|**Windows x86**|[![Build Status](https://dev.azure.com/dnceng/public/_apis/build/status/dotnet/machinelearning/MachineLearning-CI?branchName=master&jobName=Windows_x86_NetCoreApp21&configuration=Windows_x86_NetCoreApp21%20Debug_Build)](https://dev.azure.com/dnceng/public/_build/latest?definitionId=104&branchName=master)|[![Build Status](https://dev.azure.com/dnceng/public/_apis/build/status/dotnet/machinelearning/MachineLearning-CI?branchName=master&jobName=Windows_x86_NetCoreApp21&configuration=Windows_x86_NetCoreApp21%20Release_Build)](https://dev.azure.com/dnceng/public/_build/latest?definitionId=104&branchName=master)|
8787
|**Windows NetCore3.0**|[![Build Status](https://dev.azure.com/dnceng/public/_apis/build/status/dotnet/machinelearning/MachineLearning-CI?branchName=master&jobName=Windows_x64_NetCoreApp30&configuration=Windows_x64_NetCoreApp30%20Debug_Build)](https://dev.azure.com/dnceng/public/_build/latest?definitionId=104&branchName=master)|[![Build Status](https://dev.azure.com/dnceng/public/_apis/build/status/dotnet/machinelearning/MachineLearning-CI?branchName=master&jobName=Windows_x64_NetCoreApp30&configuration=Windows_x64_NetCoreApp30%20Release_Build)](https://dev.azure.com/dnceng/public/_build/latest?definitionId=104&branchName=master)|
8888

89+
## Release process and versioning
90+
91+
Check out the [release process documentation](docs/release-notes) to understand the different kinds of ML.NET releases.
92+
8993
## Contributing
9094

9195
We welcome contributions! Please review our [contribution guide](CONTRIBUTING.md).

ROADMAP.md

Lines changed: 12 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,21 @@
11
# The ML.NET Roadmap
22

3-
The goal of ML.NET project is to provide an easy to use, .NET-friendly ML platform. This document describes the tentative plan for the project in the short and long-term.
3+
The goal of the ML.NET project is to make .NET developers great at machine learning. This document describes the plan for the project.
44

5-
ML.NET is a community effort and we welcome community feedback on our plans. The best way to give feedback is to open an issue in this repo. It's always a good idea to have a discussion before embarking on a large code change to make sure there is not duplicated effort.
6-
Many of the features listed on the roadmap already exist in the internal version of the code-base. They are marked with (*). We plan to release more and more internal features to Github over time.
5+
ML.NET is a community effort and we welcome community feedback on our plans. The best way to give feedback is to open an issue in this repo.
76

8-
In the meanwhile, we are looking for contributions. An easy place to start is to look at _up-for-grabs_ issues on [Github](https://github.com/dotnet/machinelearning/issues?q=is%3Aopen+is%3Aissue+label%3Aup-for-grabs)
7+
We also invite contributions. The [up-for-grabs issues](https://github.com/dotnet/machinelearning/issues?q=is%3Aopen+is%3Aissue+label%3Aup-for-grabs) on GitHub are a good place to start.
98

10-
## Short Term
11-
### Training Improvements
12-
* Deep Learning Training Support
13-
* Integrate with leading DNN package(s)
14-
* Support for transfer learning.
15-
* Hybrid training of pipelines containing both DNN and non-DNN predictors.
16-
* Fast.ai like APIs.
9+
## Goals through June 30, 2020
10+
### Test stability
11+
Continuous integration builds currently have a 30% pass rate. We aim to get this pass rate up to at least 80%.
1712

18-
### Trained Model Management
19-
* Export models to [ONNX](https://github.com/onnx/models) (*)
13+
### Streaming metrics
14+
Currently, the way ML.NET computes [metrics](https://docs.microsoft.com/dotnet/machine-learning/resources/metrics) is memory-intensive. We will compute metrics in a streaming fashion instead, thereby reducing memory consumption.
2015

21-
## Longer Term
16+
### Multivariate anomaly detection
17+
ML.NET already supports [univariate anomaly detection](https://docs.microsoft.com/dotnet/api/microsoft.ml.timeseriescatalog.detectanomalybysrcnn?view=ml-dotnet), but we will add the ability to detect anomalies in multiple variables over time.
2218

23-
### Training Improvements
24-
* Add more learners, perhaps, including: (*)
25-
* [ProtoNN and Bonsaii](https://www.microsoft.com/en-us/research/project/resource-efficient-ml-for-the-edge-and-endpoint-iot-devices/) for compact and efficient models.
26-
* Integration with other ML packages
27-
* Accord.NET
28-
* etc.
29-
* Additional ML tasks (*)
30-
* _Sequence Classification_ - learns from a series of examples in a sequence, and each item is assigned a distinct label, akin to a multiclass classification task
31-
* Additional Data source support
32-
* Data from SQL Databases, such as SQL Server
33-
* Data located on the cloud
34-
* Apache Parquet
35-
* Native Binary high-performance format
36-
* Distributed Training
37-
* Easily train models on the cloud
38-
* Whole-pipeline optimizations for both training and inference
39-
* Automation of more data science tasks
40-
* Additional Trainers
41-
* Additional tasks
42-
43-
### Featurization Improvements
44-
* Improved data wrangling support
45-
* Add auto-suggestion of training pipelines. The technology will provide intelligent ```LearningPipeline``` suggestions based on training data attributes (*)
46-
* Additional natural language text preprocessing
47-
* Time series and forecasting
48-
* Support for Video, audio, and other data types
49-
50-
### Trained Model Management
51-
* Model operationalization in the Cloud
52-
* Model deployment on mobile platforms
53-
* Ability to run [ONNX](https://github.com/onnx/models) models in the ```LearningPipeline```
54-
* Support for the next version of ONNX
55-
* Model deployment to IOT devices
56-
57-
### GUI Improvements
58-
* Usability improvements
59-
* Support of additional ML.NET features
60-
* Improved code generation for training and inference
61-
* Run the pipelines rather than just suggesting them; present to the user the pipelines and the metrics generated from running.
62-
* Distributed runs, rather than sequential.
63-
64-
### Other
65-
* Support for additional languages
66-
* Published reproducible benchmarks against industry-leading ML toolkits on a variety of tasks and datasets
19+
### ONNX Runtime exportability
6720

21+
We will expand the number of ML.NET transforms and estimators that are exportable to the [ONNX Runtime](https://github.com/Microsoft/onnxruntime).

build.proj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,16 @@
9797
Targets="RunTests" />
9898
</Target>
9999

100+
<Target Name="RunCITests">
101+
<MSBuild Projects="test\run-tests.proj"
102+
Targets="RunCITests" />
103+
</Target>
104+
105+
<Target Name="RunSpecificTests">
106+
<MSBuild Projects="test\run-tests.proj"
107+
Targets="RunSpecificTests" />
108+
</Target>
109+
100110
<Target Name="RunNightlyBuildTests">
101111
<MSBuild Projects="test\run-night-build-tests.proj"
102112
Targets="RunNightlyBuildTests" />

build/.outer-loop-build.yml

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
################################################################################
2+
# ML.NET's outer loop build that will run all tests
3+
################################################################################
4+
5+
# no PR builds
6+
pr: none
7+
8+
# no CI builds
9+
trigger: none
10+
11+
# scheduled trigger, runs at UTC 8:00 every day which is midnight of GMT-8
12+
schedules:
13+
- cron: "0 8 * * *"
14+
displayName: outer loop build at midnight
15+
branches:
16+
include:
17+
- master
18+
- releases/1.0
19+
- features/automl
20+
- features/integrationPackage
21+
always: true
22+
23+
24+
resources:
25+
containers:
26+
- container: CentosContainer
27+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-mlnet-8bba86b-20190314145033
28+
29+
- container: UbuntuContainer
30+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-mlnet-207e097-20190312152303
31+
32+
jobs:
33+
- template: /build/ci/job-template.yml
34+
parameters:
35+
name: Centos_x64_NetCoreApp30
36+
buildScript: ./build.sh
37+
container: CentosContainer
38+
customMatrixes:
39+
Debug_Build:
40+
_configuration: Debug-netcoreapp3_0
41+
_config_short: DI
42+
_includeBenchmarkData: false
43+
Release_Build:
44+
_configuration: Release-netcoreapp3_0
45+
_config_short: RI
46+
_includeBenchmarkData: true
47+
pool:
48+
name: Hosted Ubuntu 1604
49+
50+
- template: /build/ci/job-template.yml
51+
parameters:
52+
name: Ubuntu_x64_NetCoreApp21
53+
buildScript: ./build.sh
54+
container: UbuntuContainer
55+
pool:
56+
name: Hosted Ubuntu 1604
57+
58+
- template: /build/ci/job-template.yml
59+
parameters:
60+
name: MacOS_x64_NetCoreApp21
61+
buildScript: ./build.sh
62+
pool:
63+
name: Hosted macOS High Sierra
64+
65+
- template: /build/ci/job-template.yml
66+
parameters:
67+
name: Windows_x64_NetCoreApp30
68+
buildScript: build.cmd
69+
customMatrixes:
70+
Debug_Build:
71+
_configuration: Debug-netcoreapp3_0
72+
_config_short: DI
73+
_includeBenchmarkData: false
74+
Release_Build:
75+
_configuration: Release-netcoreapp3_0
76+
_config_short: RI
77+
_includeBenchmarkData: true
78+
pool:
79+
name: NetCorePublic-Pool
80+
queue: buildpool.windows.10.amd64.vs2017.open
81+
82+
- template: /build/ci/job-template.yml
83+
parameters:
84+
name: Windows_x64_NetCoreApp21
85+
buildScript: build.cmd
86+
pool:
87+
name: Hosted VS2017
88+
89+
- template: /build/ci/job-template.yml
90+
parameters:
91+
name: Windows_x64_NetFx461
92+
buildScript: build.cmd
93+
customMatrixes:
94+
Debug_Build:
95+
_configuration: Debug-netfx
96+
_config_short: DFX
97+
_includeBenchmarkData: false
98+
Release_Build:
99+
_configuration: Release-netfx
100+
_config_short: RFX
101+
_includeBenchmarkData: false
102+
pool:
103+
name: Hosted VS2017
104+
105+
- template: /build/ci/job-template.yml
106+
parameters:
107+
name: Windows_x86_NetCoreApp21
108+
architecture: x86
109+
buildScript: build.cmd
110+
pool:
111+
name: Hosted VS2017

build/Dependencies.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
<!-- Test-only Dependencies -->
4747
<PropertyGroup>
4848
<BenchmarkDotNetVersion>0.11.3</BenchmarkDotNetVersion>
49-
<MicrosoftCodeAnalysisTestingVersion>1.0.0-beta1-63812-02</MicrosoftCodeAnalysisTestingVersion>
49+
<MicrosoftCodeAnalysisTestingVersion>1.0.1-beta1.20080.1</MicrosoftCodeAnalysisTestingVersion>
5050
<MicrosoftMLTestDatabasesPackageVersion>0.0.5-test</MicrosoftMLTestDatabasesPackageVersion>
5151
<MicrosoftMLTestModelsPackageVersion>0.0.6-test</MicrosoftMLTestModelsPackageVersion>
5252
<MicrosoftMLTensorFlowTestModelsVersion>0.0.11-test</MicrosoftMLTensorFlowTestModelsVersion>

0 commit comments

Comments
 (0)