PlainML.Core
0.1.192
dotnet add package PlainML.Core --version 0.1.192
NuGet\Install-Package PlainML.Core -Version 0.1.192
<PackageReference Include="PlainML.Core" Version="0.1.192" />
paket add PlainML.Core --version 0.1.192
#r "nuget: PlainML.Core, 0.1.192"
// Install PlainML.Core as a Cake Addin #addin nuget:?package=PlainML.Core&version=0.1.192 // Install PlainML.Core as a Cake Tool #tool nuget:?package=PlainML.Core&version=0.1.192
PlainML
This library should simplify the tracking process of Machine-Learning (ML) training tasks. When you train a ML-model you can save parameters and metrics of the training attempts (named as "runs"). Also you can store artifacts and deploy it to a deploymenttarget like "dev" or "prod". On this way you can access them on an client application the deployed model.
Features
- Experimenttracking (Runs with parameters, metrics and artifacts)
- Integration of trainingprocesses
- Deployment to different targets (dev, production)
- Manage artifacts (deployment, caching)
- Visualization
Getting Started
- Install VSCode
- Install C# extensions for VSCode
- Create project
mkdir PlainMLExample cd PlainMLExample dotnet new console
- Install nuget package to project
dotnet add package PlainML dotnet add package PlainML.Infrastructure
- Add usings on the top of program.cs-File
using Microsoft.Extensions.DependencyInjection; using PlainML; using PlainML.Entities; using PlainML.Infrastructure;
- Use dependency injection to configure services
var _provider = new ServiceCollection() .UsePlainMLSqLite() // other providers like SQL-Server are avaiable .UseArtifactStorageFilesystem() // other providers like SQL-Server are avaiable .AddTransient<PlainMLService>() .BuildServiceProvider();
- Apply migration when init the database the first time or a new major version is avaiable
var s = new PlainMLService(dbContextFactory, artifactStorage); await s.Migrate();
- Use code
const string experimentName = "TestExperiment"; const string artifactsPath = "./Artifacts"; // Create database PlainMLService s = _provider.GetRequiredService<PlainMLService>(); await s.Migrate(); // Train model int rundId = await s.StartRun(experimentName); float metricValue = await TrainModel(artifactsPath); await s.EndRun( rundId, parameters: new[] { new Parameter(){ Name = "Parameter1", Value = 1.123f } }, parameters_StringType: new[] { new Parameter_StringType(){ Name = "Trainers", Value = "LightGbm, OneVersusAllTrainer" } }, metrics: new[] { new Metric(){ Name = "MicroAccuracy", Value = metricValue } }, artifactsPath); // Deploy model await s.DeployRun(rundId); // Use model var deployedRun = await s.GetDeployedRun(experimentName) ?? throw new NullReferenceException(); await s.DownloadArtifacts(deployedRun.Id, "./DownloadedArtifacts"); Console.WriteLine("Artifacts of run in ./DownloadedArtifacts:"); foreach (var item in Directory.EnumerateFiles("./DownloadedArtifacts")) { Console.WriteLine(item); } async static Task<float> TrainModel(string artifactsPath) { Console.WriteLine("Training..."); await Task.Delay(100); if (Directory.Exists(artifactsPath)) { Console.WriteLine("Directory exists. Delete it!"); Directory.Delete(artifactsPath, true); } Directory.CreateDirectory(artifactsPath); await File.WriteAllTextAsync(Path.Combine(artifactsPath, "TestFile.bin"), "0011010101001"); return 0.1f; }
Examples
NuGet Packages
- https://www.nuget.org/packages/PlainML/
- https://www.nuget.org/packages/PlainML.Infrastructure/
- https://www.nuget.org/packages/PlainML.Core/
Roadmap
- Develop unstable version 0.1.*
- Create initial stable version 1.0.0
- ML.Net integration
- Create docs
- Rest-interface
- Web-interface for visualization and Manage Experiments (run-table, graphs,...)
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on PlainML.Core:
Package | Downloads |
---|---|
PlainML
This library should simplify the tracking process of Machine-Learning training tasks. |
|
PlainML.Infrastructure
This library should simplify the tracking process of Machine-Learning training tasks. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.1.192 | 424 | 1/25/2023 |
0.1.191 | 384 | 1/25/2023 |
0.1.189 | 389 | 1/25/2023 |
0.1.185 | 399 | 1/25/2023 |
0.0.184 | 398 | 1/25/2023 |
0.0.179 | 384 | 1/25/2023 |
0.0.171 | 405 | 1/25/2023 |
0.0.165 | 388 | 1/24/2023 |
0.0.157 | 377 | 1/24/2023 |
0.0.155 | 397 | 1/24/2023 |
0.0.148 | 385 | 1/24/2023 |
0.0.141 | 318 | 1/24/2023 |
0.0.138 | 306 | 1/24/2023 |
0.0.137 | 329 | 1/23/2023 |
0.0.135 | 333 | 1/23/2023 |
0.0.133 | 315 | 1/23/2023 |
0.0.118 | 305 | 1/22/2023 |
0.0.117 | 313 | 1/21/2023 |
0.0.116 | 316 | 1/21/2023 |
0.0.115 | 310 | 1/21/2023 |
0.0.112 | 317 | 1/21/2023 |
0.0.111 | 332 | 1/21/2023 |
0.0.100 | 326 | 1/18/2023 |
0.0.97 | 317 | 1/18/2023 |
0.0.92 | 323 | 1/18/2023 |
0.0.91 | 323 | 1/18/2023 |
0.0.90 | 310 | 1/18/2023 |
0.0.88 | 326 | 1/18/2023 |
0.0.86 | 313 | 1/18/2023 |
0.0.85 | 318 | 1/18/2023 |
0.0.84 | 378 | 1/18/2023 |