ooples/AiDotNet
ooples/AiDotNet has 61 GitHub stars and 18 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 06:25 UTC. Last push 2026-11-13.
Gemessener Sternzuwachs
- in 24h
- 0
- in 7 days
- Verlauf wird gesammelt
- in 15 days
- Verlauf wird gesammelt
- in 1 month
- Verlauf wird gesammelt
Nettoänderungen in überlappenden Zeiträumen, keine Tagessummen. Fehlende Messwerte bleiben leer. Sterne zeigen Interesse, nicht Qualität.
Über uns
A new library for all of the newest ai algorithms
Maschinelles LernenREADME.md
OriginalAiDotNet
The Most Comprehensive AI/ML Framework for .NET
2,100+ models and 10,500+ public types, counted from the compiled assembly
| Capability | AiDotNet |
|---|---|
| Models (all families) | 2,100+ |
| Neural network architectures | 1,400+ |
| Classical ML algorithms | 390+ |
| Computer vision models | 650+ |
| Language models | 430+ |
| Audio models | 340+ |
| Video models | 180+ |
| Time-series models | 130+ |
| Reinforcement learning agents | 75+ |
| Diffusion models | 290+ |
| LoRA adapters | 30+ |
| RAG retrievers, rerankers and document stores | 35+ |
| GPU backends | CUDA, HIP, Metal, OpenCL, Vulkan, WebGPU |
Counts come from the compiled assemblies: a model is a public concrete type with a [ModelDomain] attribute, and a family is one of its declared domains or categories, so one model can count in several rows.
Getting Started • Samples • Documentation • API Reference • Contributing
Why AiDotNet?
The model and component counts are in the generated table at the top of this page. Against the other .NET libraries, the difference that can be stated without a benchmark is the runtime:
| AiDotNet | TorchSharp | TensorFlow.NET | |
|---|---|---|---|
| Tensor engine | Managed .NET, with optional native accelerators (oneDNN, CLBlast, GPU backends) | Native LibTorch | Native TensorFlow runtime |
Quick Start by Task
What do you want to build?
| Task | Quick Link | Description |
|---|---|---|
| Classify data | Classification | Binary, multi-class, image classification |
| Predict values | Regression | Price prediction, forecasting |
| Group similar items | Clustering | Customer segmentation, anomaly detection |
| Detect objects in images | Computer Vision | YOLO, DETR, Mask R-CNN |
| Process audio/speech | Audio | Whisper, TTS, music generation |
| Build a chatbot with RAG | RAG | Vector stores, retrievers, rerankers |
| Fine-tune LLMs | LoRA Fine-tuning | QLoRA, DoRA, AdaLoRA |
| Generate images | Diffusion Models | Stable Diffusion, DALL-E 3 |
| Train RL agents | Reinforcement Learning | DQN, PPO, SAC, multi-agent |
| Forecast time series | Time Series | ARIMA, Prophet, N-BEATS |
| Scale training | Distributed Training | Multi-GPU, multi-node |
Installation
dotnet add package AiDotNet
Native acceleration binaries are optional packages maintained by AiDotNet.Tensors. Install only the backend you need alongside AiDotNet:
dotnet add package AiDotNet.Native.CLBlast # OpenCL BLAS acceleration
dotnet add package AiDotNet.Native.OneDNN # oneDNN CPU acceleration
AiDotNet works without these packages using the Tensors engine's available managed and in-house kernels.
Requirements: .NET 10.0 / .NET 8.0+ (or .NET Framework 4.7.1+)
Hello World Example
using AiDotNet;
using AiDotNet.Enums;
using AiDotNet.LinearAlgebra;
using AiDotNet.NeuralNetworks;
// features: [N, 4] tensor of Iris measurements
// labels: [N, 3] one-hot tensor of species
var architecture = new NeuralNetworkArchitecture<double>(
inputFeatures: 4, numClasses: 3, complexity: NetworkComplexity.Simple);
var result = await new AiModelBuilder<double, Tensor<double>, Tensor<double>>()
.ConfigureModel(new NeuralNetwork<double>(architecture))
.BuildAsync(features, labels);
var predictions = result.Predict(testFeatures);
Full runnable version (inline Iris dataset, train/test split, accuracy report):
samples/getting-started/HelloWorld/Program.cs
Complete Feature Reference
Neural Networks
Click to expand all neural network types
Core Architectures
NeuralNetwork- Feedforward networksConvolutionalNeuralNetwork- CNNs for imagesRecurrentNeuralNetwork- RNNs for sequencesLSTMNeuralNetwork- Long Short-Term MemoryGRUNeuralNetwork- Gated Recurrent UnitsTransformerArchitecture- Attention-based modelsResNetNetwork- Residual networksDenseNetNetwork- Densely connected networksEfficientNetNetwork- Efficient scalingMobileNetV2Network,MobileNetV3Network- Mobile-optimized
Generative Models
GenerativeAdversarialNetwork(GAN)DCGAN,ConditionalGAN,CycleGANProgressiveGAN,BigGAN,StyleGANACGAN,InfoGAN,Pix2PixAutoencoder,VariationalAutoencoder
Graph Neural Networks
GraphNeuralNetwork(GNN)GraphAttentionNetwork(GAT)GraphSAGENetworkGraphIsomorphismNetwork(GIN)GraphGenerationModel
Specialized Architectures
CapsuleNetwork- Capsule networksSpikingNeuralNetwork- Neuromorphic computingQuantumNeuralNetwork- Quantum MLHyperbolicNeuralNetwork- Hyperbolic geometryMixtureOfExpertsNeuralNetwork- MoENeuralTuringMachine- NTMDifferentiableNeuralComputer- DNCMemoryNetwork- Memory-augmentedEchoStateNetwork- Reservoir computingLiquidStateMachine- Liquid state machinesHopfieldNetwork- Associative memoryRestrictedBoltzmannMachine- RBMDeepBeliefNetwork- DBNDeepBoltzmannMachine- DBMRadialBasisFunctionNetwork- RBFSelfOrganizingMap- SOMExtremeLearningMachine- ELMNEAT- Neuroevolution
Vision-Language Models
ClipNeuralNetwork- CLIPBlipNeuralNetwork,Blip2NeuralNetwork- BLIPLLaVANeuralNetwork- LLaVAFlamingoNeuralNetwork- FlamingoGpt4VisionNeuralNetwork- GPT-4V
Attention Mechanisms
AttentionNetworkFlashAttention- Memory-efficient attentionMultiHeadAttention
Example:
var model = new AiModelBuilder<double, Tensor<double>, Tensor<double>>()
.ConfigureModel(new ConvolutionalNeuralNetwork<double>(
inputChannels: 3,
numClasses: 1000,
architecture: CNNArchitecture.ResNet50))
.ConfigureOptimizer(new AdamWOptimizer<double>(learningRate: 0.001))
.ConfigureMixedPrecision() // FP16 training
.ConfigureGpuAcceleration()
.BuildAsync(trainImages, trainLabels);
Classification (50 Algorithms)
Click to expand all classification algorithms
Ensemble Methods
RandomForestClassifierGradientBoostingClassifierAdaBoostClassifierExtraTreesClassifierBaggingClassifierStackingClassifierVotingClassifier
Naive Bayes
GaussianNaiveBayesMultinomialNaiveBayesBernoulliNaiveBayesComplementNaiveBayesCategoricalNaiveBayes
Linear Models
LogisticRegressionRidgeClassifierSGDClassifierPassiveAggressiveClassifierPerceptronClassifier
Support Vector Machines
LinearSupportVectorClassifierSupportVectorClassifier
Discriminant Analysis
LinearDiscriminantAnalysisQuadraticDiscriminantAnalysis
Multi-label/Multi-output
OneVsRestClassifierOneVsOneClassifierClassifierChainMultiOutputClassifier
Neighbors
KNeighborsClassifier
Example:
var result = await new AiModelBuilder<double, double[], double>()
.ConfigureModel(new RandomForestClassifier<double>(nEstimators: 100))
.ConfigurePreprocessing(pipeline => pipeline
.Add(new StandardScaler<double>())
.Add(new SimpleImputer<double>()))
.ConfigureCrossValidation(new KFoldCrossValidator<double>(k: 5))
.BuildAsync(features, labels);
Console.WriteLine($"Accuracy: {result.CrossValidationResult?.MeanAccuracy:P2}");
Regression (57 Algorithms)
Click to expand all regression algorithms
Linear Models
MultipleRegressionPolynomialRegressionRidgeRegressionLassoRegressionElasticNetRegressionBayesianRegressionOrthogonalRegression
Tree-Based
DecisionTreeRegressionGradientBoostingRegressionAdaBoostR2RegressionExtremelyRandomizedTreesRegressionM5ModelTreeRegressionConditionalInferenceTreeRegression
Kernel Methods
GaussianProcessRegressionKernelRidgeRegressionSupportVectorRegression
Specialized
IsotonicRegressionLocallyWeightedRegressionPartialLeastSquaresRegressionMultivariateRegressionGeneralizedAdditiveModelRegression
Probabilistic
PoissonRegressionNegativeBinomialRegressionQuantileRegressionRobustRegression
Neural Network Based
MultilayerPerceptronRegressionNeuralNetworkRegression
Optimization-Based
GeneticAlgorithmRegression
Example:
var result = await new AiModelBuilder<double, double[], double>()
.ConfigureModel(new GradientBoostingRegression<double>(
nEstimators: 200,
maxDepth: 5,
learningRate: 0.1))
.ConfigureHyperparameterOptimizer(
new BayesianOptimizer<double>(),
searchSpace: new HyperparameterSearchSpace()
.AddContinuous("learning_rate", 0.01, 0.3)
.AddInteger("max_depth", 3, 10),
trials: 50)
.BuildAsync(features, targets);
Clustering (48 Algorithms)
Click to expand all clustering algorithms
Centroid-Based
KMeansClusteringKMedoidsClusteringMiniBatchKMeans
Density-Based
DBSCANHDBSCANOPTICSMeanShiftDenclue
Hierarchical
AgglomerativeClusteringBIRCHCURE
Model-Based
GaussianMixtureClusteringBayesianGaussianMixture
Spectral
SpectralClustering
Self-Organizing
GMeansXMeans
Distance Metrics
EuclideanDistanceManhattanDistanceCosineDistanceMahalanobisDistanceChebyshevDistanceMinkowskiDistance
Validation Metrics
SilhouetteScoreDaviesBouldinIndexCalinskiHarabaszIndexDunnIndexAdjustedRandIndex
Example:
var result = await new AiModelBuilder<double, double[], int>()
.ConfigureModel(new HDBSCAN<double>(minClusterSize: 15, minSamples: 5))
.ConfigureAutoML(new ClusteringAutoML<double>()) // Auto-tune parameters
.BuildAsync(features);
Console.WriteLine($"Clusters found: {result.Model.Labels.Distinct().Count()}");
Console.WriteLine($"Silhouette Score: {result.ClusteringMetrics?.SilhouetteScore:F3}");
Computer Vision
Click to expand all computer vision capabilities
Object Detection
- YOLO Family: YOLOv5, YOLOv8, YOLOv9, YOLOv10, YOLOv11
- Transformer-Based: DETR, Deformable DETR, DINO
- Two-Stage: Faster R-CNN, Cascade R-CNN
- Anchor-Free: FCOS, CenterNet
Instance Segmentation
- Mask R-CNN
- YOLACT
- SOLOv2
- Segment Anything (SAM)
Semantic Segmentation
- DeepLabV3+
- UNet, UNet++
- PSPNet
- HRNet
Object Tracking
- SORT
- DeepSORT
- ByteTrack
- OC-SORT
OCR & Scene Text
SceneTextReader- Text detection + recognition
- Multi-language support
Pose Estimation
- OpenPose
- HRNet-Pose
- ViTPose
3D Vision
- PointNet, PointNet++
- MeshCNN
- NeRF (Neural Radiance Fields)
Example:
var builder = new AiModelBuilder<float, Tensor<float>, DetectionResult[]>()
.ConfigureObjectDetector(new YOLOv8Detector<float>(
modelSize: YOLOModelSize.Medium,
confidenceThreshold: 0.5f))
.ConfigureVisualization(new VisualizationOptions { DrawLabels = true });
var result = await builder.BuildAsync();
var detections = result.Model.Detect(image);
foreach (var det in detections)
Console.WriteLine($"{det.Label}: {det.Confidence:P1} at {det.BoundingBox}");
Audio Processing
Click to expand all audio capabilities
Speech Recognition
- Whisper: whisper-tiny, whisper-base, whisper-small, whisper-medium, whisper-large
- Wav2Vec2: Multiple languages
- HuBERT
- Conformer
Text-to-Speech
- VITS
- FastSpeech2
- Tacotron2
- XTTS (multi-speaker, cross-lingual)
Music Generation
- MusicGen
- AudioGen
- Riffusion
Audio Classification
- Audio event detection
- Music genre classification
- Environmental sound classification
Speaker Analysis
- Speaker identification
- Speaker verification
- Speaker diarization
Audio Enhancement
- Noise reduction
- Echo cancellation
- Speech enhancement
Source Separation
- Vocals/instruments separation
- Multi-track separation
Voice Activity Detection
- WebRTC VAD
- Silero VAD
Emotion Recognition
- Speech emotion classification
Music Analysis
- Beat detection
- Chord recognition
- Key detection
- Tempo estimation
Example:
// Speech-to-Text with Whisper
var whisper = new WhisperModel<float>(WhisperModelSize.Medium, language: "en");
var transcription = await whisper.TranscribeAsync(audioFile);
Console.WriteLine(transcription.Text);
// Text-to-Speech
var tts = new VITSModel<float>(voice: "en-US-female");
var audio = await tts.SynthesizeAsync("Hello, world!");
await audio.SaveAsync("output.wav");
Video Processing
Click to expand all video capabilities
Video Generation
- Stable Video Diffusion
- AnimateDiff
- VideoCrafter
- Text2Video
Action Recognition
- SlowFast
- TimeSformer
- Video Swin Transformer
Video Understanding
- CLIP4Clip
- Video captioning
Optical Flow
- RAFT
- FlowNet
Video Object Detection
- Video object tracking
- Multi-object tracking
Example:
var videoGen = new StableVideoDiffusion<float>();
var video = await videoGen.GenerateAsync(
prompt: "A cat playing piano",
numFrames: 24,
fps: 8);
await video.SaveAsync("output.mp4");
Reinforcement Learning
Click to expand all RL agents
Value-Based
DQNAgent- Deep Q-NetworkDoubleDQNAgent- Double DQNDuelingDQNAgent- Dueling architectureRainbowDQNAgent- Rainbow (all improvements)QLearningAgent,DoubleQLearningAgentSARSAAgent,ExpectedSARSAAgentNStepQLearningAgent,NStepSARSAAgent
Policy Gradient
REINFORCEAgentA2CAgent- Advantage Actor-CriticA3CAgent- Asynchronous A3CPPOAgent- Proximal Policy Optimization
Actor-Critic
DDPGAgent- Deep Deterministic PGTD3Agent- Twin Delayed DDPGSACAgent- Soft Actor-Critic
Model-Based
DreamerAgent- World modelsMuZeroAgent- MuZeroDynaQAgent,DynaQPlusAgentPrioritizedSweepingAgent
Multi-Agent
MADDPGAgent- Multi-Agent DDPGQMIXAgent- QMIX
Offline RL
CQLAgent- Conservative Q-LearningIQLAgent- Implicit Q-Learning
Monte Carlo
MonteCarloExploringStartsAgentFirstVisitMonteCarloAgentEveryVisitMonteCarloAgentOffPolicyMonteCarloAgent
Planning
MCTSNode- Monte Carlo Tree SearchPolicyIterationAgentModifiedPolicyIterationAgent
Bandits
EpsilonGreedyBanditAgentUCBBanditAgentThompsonSamplingAgentGradientBanditAgent
Sequence Models
DecisionTransformerAgent
Example:
var env = new CartPoleEnvironment();
var agent = new PPOAgent<double>(
stateSize: env.ObservationSpace,
actionSize: env.ActionSpace,
hiddenSize: 64,
learningRate: 3e-4);
// Training loop
for (int episode = 0; episode < 1000; episode++)
{
var state = env.Reset();
double totalReward = 0;
while (!env.IsDone)
{
var action = agent.SelectAction(state);
var (nextState, reward, done) = env.Step(action);
agent.Store(state, action, reward, nextState, done);
state = nextState;
totalReward += reward;
}
agent.Train();
Console.WriteLine($"Episode {episode}: Reward = {totalReward}");
}
Time Series
Click to expand all time series models
Classical Statistical
ARModel- AutoregressiveMAModel- Moving AverageARMAModel- ARMAARIMAModel- ARIMASARIMAModel- Seasonal ARIMAARIMAXModel- ARIMAX with exogenous variablesGARCHModel- Volatility modelingVARModel,VARMAModel- Vector models
Exponential Smoothing
ExponentialSmoothingModelHoltWintersModelTBATSModel
Deep Learning
NBEATSModel- N-BEATSNHiTSModel- N-HiTSDeepARModel- DeepARTemporalFusionTransformerInformerModel- InformerAutoformerModel- AutoformerChronosFoundationModel- Chronos
Anomaly Detection
DeepANTLSTMVAETimeSeriesIsolationForest
Specialized
ProphetModel- Facebook ProphetStateSpaceModelBayesianStructuralTimeSeriesModelSpectralAnalysisModel
Example:
var result = await new AiModelBuilder<double, double[], double>()
.ConfigureModel(new NBEATSModel<double>(
stackTypes: new[] { StackType.Trend, StackType.Seasonality, StackType.Generic },
horizonSize: 24))
.ConfigureTrainingPipeline(new TrainingPipelineConfiguration<double>
{
EarlyStopping = new EarlyStoppingConfig { Patience = 10 }
})
.BuildAsync(historicalData);
var forecast = result.Model.Forecast(steps: 24);
Retrieval-Augmented Generation
Click to expand all RAG components
Vector Stores
- In-memory vector store
- FAISS integration
- Pinecone, Weaviate, Qdrant adapters
- Chroma, Milvus support
Embedding Models
- OpenAI embeddings
- HuggingFace embeddings
- Sentence Transformers
- BGE, ColBERT
Retrievers
- Dense retriever
- Sparse retriever (BM25)
- Hybrid retriever
- Multi-query retriever
- Self-query retriever
Rerankers
- Cross-encoder reranker
- ColBERT reranker
- Cohere reranker
Document Processing
- Text splitters (recursive, semantic)
- Document loaders
- Chunking strategies
Graph RAG
- Knowledge graph construction
- Entity extraction
- Relation extraction
- Graph traversal retrieval
Query Processing
- Query expansion
- Query rewriting
- HyDE (Hypothetical Document Embeddings)
Example:
var result = await new AiModelBuilder<float, string, string>()
.ConfigureRetrievalAugmentedGeneration(
retriever: new HybridRetriever<float>(
denseRetriever: new DenseRetriever<float>(embeddingModel),
sparseRetriever: new BM25Retriever(),
alpha: 0.7f),
reranker: new CrossEncoderReranker<float>(),
generator: new LLMGenerator<float>(llmClient),
queryProcessors: new[] { new QueryExpander() })
.BuildAsync();
var answer = await result.Model.QueryAsync("What is the capital of France?", documents);
LoRA Fine-tuning
Click to expand all LoRA variants
Standard LoRA
LoRAAdapter- Original LoRALoRAPlusAdapter- LoRA+
Quantized
QLoRAAdapter- 4-bit quantizationQALoRAAdapter- Quantization-aware
Memory Efficient
DoRAAdapter- Weight-DecomposedVeRAAdapter- Very efficientNOLAAdapter- Noise-optimized
Rank Adaptation
AdaLoRAAdapter- Adaptive rankDyLoRAAdapter- Dynamic rankReLoRAAdapter- Recursive
Specialized
LoHaAdapter- Hadamard productLoKrAdapter- Kronecker productMoRAAdapter- Mixture of ranksLongLoRAAdapter- Long contextGraphConvolutionalLoRAAdapter- For GNNs
Advanced
PiSSAAdapter- Principal singular valuesFloraAdapter- Floating-pointDeltaLoRAAdapter- Delta updatesLoftQAdapter- Quantization-aware initChainLoRAAdapter- Chained adapters
Example:
var result = await new AiModelBuilder<float, string, string>()
.ConfigureLoRA(new QLoRAConfiguration<float>
{
Rank = 16,
Alpha = 32,
TargetModules = new[] { "q_proj", "v_proj", "k_proj", "o_proj" },
QuantizationBits = 4,
UseDoubleQuantization = true
})
.ConfigureFineTuning(new FineTuningConfiguration<float>
{
BaseModel = "meta-llama/Llama-2-7b-hf",
TrainingArguments = new TrainingArguments
{
NumEpochs = 3,
BatchSize = 4,
GradientAccumulationSteps = 8
}
})
.BuildAsync(trainingData);
Diffusion Models
Click to expand all diffusion models
Image Generation
StableDiffusionModelSDXLModel- Stable Diffusion XLDallE3Model- DALL-E 3PixArtModel- PixArt
Image Editing
ControlNetModelIPAdapterModel- Inpainting, Outpainting
Audio Generation
AudioLDMModel,AudioLDM2ModelMusicGenModelRiffusionModelDiffWave(TextToSpeech.Vocoders: vocoding, unconditional and class-conditional)
Video Generation
StableVideoDiffusionAnimateDiffModelVideoCrafterModel
3D Generation
DreamFusionModelMVDreamModelShapEModelPointEModelZero123Model
Architectures
DDPMModel- Denoising DiffusionConsistencyModel- Fast inference- Various schedulers (DDIM, PNDM, etc.)
Example:
var diffusion = new SDXLModel<float>();
var image = await diffusion.GenerateAsync(
prompt: "A photorealistic cat astronaut on Mars",
negativePrompt: "blurry, low quality",
width: 1024,
height: 1024,
numInferenceSteps: 30,
guidanceScale: 7.5f);
await image.SaveAsync("output.png");
Distributed Training
Click to expand distributed training options
Data Parallelism
DDPModel- Distributed Data ParallelDDPOptimizer
Model Parallelism
PipelineParallelModelTensorParallelModel
Fully Sharded
FSDPModel- Fully Sharded Data ParallelZeROOptimizer(Stage 1, 2, 3)HybridShardedModel
Communication
- NCCL backend (NVIDIA)
- Gloo backend
- MPI backend
Optimization
GradientCompressionOptimizerAsyncSGDOptimizerLocalSGDOptimizerElasticOptimizer- Fault-tolerant
Example:
var result = await new AiModelBuilder<float, Tensor<float>, Tensor<float>>()
.ConfigureModel(largeModel)
.ConfigureDistributedTraining(
strategy: DistributedStrategy.FSDP,
backend: new NCCLCommunicationBackend(),
configuration: new FSDPConfiguration
{
ShardingStrategy = ShardingStrategy.FullShard,
MixedPrecision = true,
ActivationCheckpointing = true
})
.ConfigureGpuAcceleration(new GpuAccelerationConfig { DeviceIds = new[] { 0, 1, 2, 3 } })
.BuildAsync(trainData);
Meta-Learning
Click to expand meta-learning methods
Optimization-Based
MAMLAlgorithm- Model-Agnostic Meta-LearningiMAMLAlgorithm- Implicit MAMLReptileAlgorithmMetaSGDAlgorithmANILAlgorithm- Almost No Inner LoopBOILAlgorithm- Body Only Inner Loop
Metric-Based
ProtoNetsAlgorithm- Prototypical NetworksMatchingNetworksAlgorithmRelationNetworkAlgorithm
Memory-Based
MANNAlgorithm- Memory-Augmented NNNTMAlgorithm- Neural Turing Machine
Hybrid
LEOAlgorithm- Latent Embedding OptimizationCNAPAlgorithm- Conditional Neural Adaptive ProcessesTADAMAlgorithm- Task-Dependent Adaptive MetricMetaOptNetAlgorithmGNNMetaAlgorithm- Graph-based
Example:
var result = await new AiModelBuilder<float, Tensor<float>, Tensor<float>>()
.ConfigureMetaLearning(new MAMLAlgorithm<float>(
innerLearningRate: 0.01f,
outerLearningRate: 0.001f,
innerSteps: 5))
.BuildAsync(metaTrainTasks);
// Few-shot learning on new task
var adapted = result.MetaLearner.Adapt(supportSet, numSteps: 10);
var predictions = adapted.Predict(querySet);
Self-Supervised Learning
Click to expand SSL methods
Contrastive
SimCLRMoCo- Momentum ContrastBYOL- Bootstrap Your Own LatentBarlowTwinsSwAV- Swapping Assignments
Masked
MAE- Masked AutoencoderBEiT
Distillation
DINO- Self-DistillationiBOT
Evaluation
- Linear probing
- KNN evaluation
- Transfer benchmarks
Optimizers
Click to expand all optimizers
Adaptive Learning Rate
AdamOptimizer,AdamWOptimizerAdagradOptimizerAdaDeltaOptimizerAdaMaxOptimizerAMSGradOptimizerNadamOptimizer
Momentum-Based
MomentumOptimizerNesterovAcceleratedGradientOptimizer
Second-Order
BFGSOptimizer,LBFGSOptimizerNewtonMethodOptimizerLevenbergMarquardtOptimizerConjugateGradientOptimizer
Large-Scale
LAMBOptimizer- Layer-wise AdaptiveLARSOptimizer- Layer-wise Rate ScalingLionOptimizer- Evolved Sign Momentum
Regularized
FTRLOptimizer- Follow-The-Regularized-Leader
Evolutionary
GeneticAlgorithmOptimizerParticleSwarmOptimizerDifferentialEvolutionOptimizerCMAESOptimizer- Covariance Matrix AdaptationAntColonyOptimizer
Specialized
BayesianOptimizer- Hyperparameter tuningNelderMeadOptimizer- Simplex methodCoordinateDescentOptimizerADMMOptimizer- Alternating Direction
Loss Functions
- Classification: CrossEntropy, BinaryCrossEntropy, FocalLoss, LabelSmoothing
- Regression: MSE, MAE, Huber, LogCosh, Quantile
- Segmentation: Dice, IoU, Tversky, Lovász
- Metric Learning: Triplet, Contrastive, ArcFace, CosFace, Circle
- Generative: Wasserstein, Hinge, LSGAN
- Multi-task: Uncertainty-weighted, GradNorm
Additional Features
AutoML
- Hyperparameter optimization (Bayesian, Random, Grid)
- Neural Architecture Search (NAS)
- Feature selection
- Model selection
Federated Learning
- FedAvg, FedProx, FedNova
- Secure aggregation
- Differential privacy
- Client selection strategies
Tokenization (HuggingFace Compatible)
- BPE, WordPiece, Unigram, SentencePiece
- Pre-trained tokenizer loading
- Custom tokenizer training
Model Compression
- Pruning (magnitude, structured)
- Quantization (INT8, FP16, INT4)
- Knowledge distillation
- Low-rank factorization
Uncertainty Quantification
- Monte Carlo Dropout
- Deep Ensembles
- Bayesian Neural Networks
- Conformal Prediction
Data Augmentation
- Image: Flip, rotate, crop, color jitter, MixUp, CutMix, AutoAugment
- Text: Synonym replacement, back-translation, EDA
- Audio: Time stretch, pitch shift, noise injection
- Tabular: SMOTE, ADASYN
Experiment Tracking
- Experiment management
- Metric logging
- Checkpoint management
- Model registry
Prompt Engineering
- Prompt templates
- Chain-of-thought
- Few-shot learning
- Prompt optimization
Samples
See the samples/ directory for complete, runnable examples:
| Category | Sample | Description |
|---|---|---|
| Getting Started | HelloWorld | Your first AiDotNet model |
| Classification | SentimentAnalysis | Text sentiment with NaiveBayes |
| Computer Vision | ObjectDetection | YOLOv8 object detection |
| Audio | SpeechRecognition | Whisper transcription |
| RAG | BasicRAG | Build a Q&A system |
| RL | CartPole | Train a PPO agent |
API Reference
Full API documentation: docfx-generated reference at ooples.github.io/AiDotNet/api/; narrative docs and guides at aidotnet.dev/docs.
Key namespaces:
AiDotNet- Core builder and result typesAiDotNet.NeuralNetworks- All neural network architecturesAiDotNet.Classification- Classification algorithmsAiDotNet.Regression- Regression algorithmsAiDotNet.Clustering- Clustering algorithmsAiDotNet.ComputerVision- Vision modelsAiDotNet.Audio- Audio processingAiDotNet.ReinforcementLearning- RL agentsAiDotNet.RetrievalAugmentedGeneration- RAG componentsAiDotNet.LoRA- Fine-tuning adaptersAiDotNet.Diffusion- Diffusion modelsAiDotNet.DistributedTraining- Distributed strategiesAiDotNet.MetaLearning- Meta-learning algorithmsAiDotNet.TimeSeries- Time series modelsAiDotNet.Optimizers- Optimization algorithms
Feature Maturity
The repository ships a wide surface; not every subsystem is at the same
maturity level. The labels below set expectations for enterprise
consumers — stable features are appropriate for production use today;
beta features are functional but may have visible rough edges or API
churn; experimental features are exploratory and should not be relied
on in production; preview indicates work-in-progress that may not yet
be feature-complete; stub indicates an interface present for forward
compatibility but without a substantial implementation.
| Subsystem | Maturity | Notes |
|---|---|---|
| Classical ML (regression, classification, clustering, time series) | stable | Long-standing surface, extensive tests. |
| Neural networks core (training, inference, autodiff tape) | stable | Active hardening; recent fixes for #1380 / #1382 mode-collapse + facade gradient bridge. |
| Optimizers (Adam, AdamW, SGD, etc.) | stable | Per-tensor + flat-vector paths; gradient clipping and mixed precision supported. |
| Layers + activations + losses | beta | Eleven bottom-up invariants (finite output, deterministic replay, shape agreement, parameter roundtrip, serialization, taped-vs-numerical gradient) run green over the core layers — 88 assertions in ModelFamilyTests/Layers. That is a small fraction of the ~225 layer types; the harness accepts a new layer in about four lines, and widening it is ongoing. |
| Diffusion / image generation | beta | Implementation present; sample-quality benchmarks pending. |
| Reinforcement learning agents | beta | API stable; broader benchmark suite in progress. |
| Federated learning (DP-SGD, secure aggregation) | beta | Privacy primitives present; production deployments should validate threat model. |
| RAG / retrieval | beta | Retriever + generator + chunking are functional; LangChain-style orchestration is lighter. |
| LoRA fine-tuning | beta | Adapter wiring works; quantized LoRA path is newer. |
| AiDotNet.Serving (REST API for inference) | beta | Default-allow-list auth and CORS; observability + audit logging still developing. |
| Program synthesis (sandboxed code generation) | experimental | High-risk surface — disable unless explicitly required and isolated. |
| ONNX / external-model interop | beta | Import covered; export coverage is partial. |
| Native acceleration (OpenBLAS, BLAS, fused kernels) | beta | CPU SIMD paths shipped; GPU determinism is being pinned (see GpuTransformerDeterminismTests). |
Telemetry (opt-in via AIDOTNET_TELEMETRY=true) |
stable | No PII or model data collected; collects usage metrics only. |
| Licensing (BSL 1.1 + commercial tiers) | stable | API-key hashing (PBKDF2-SHA256), AES-GCM-encrypted model artifacts on supported frameworks. |
| OpenTelemetry integration (serving) | preview | Opt-in scaffold; full meters/traces in progress. |
| Vision-language models | preview | Large surface (~360 source files) against ~22 test files that reference it. |
| Text-to-speech | preview | ~245 source files against ~8 test files that reference it. |
| Speech recognition | preview | ~192 source files against ~11 test files that reference it. |
| Video models (generation, restoration, interpolation) | preview | ~221 source files against ~16 test files that reference it. |
| Audio models (generation, codecs, music) | preview | ~251 source files against ~21 test files that reference it. |
| Document understanding | preview | ~69 source files against ~10 test files that reference it. |
| LoRA fine-tuning REST endpoint | stub | Returns 501 by design — IServableModel covers prediction, not training; use the in-process API. Contract asserted by FineTuneWithLoRA_WhenModelExists_Returns501. |
Duplicate type names. Thirty-three public type names are declared in two namespaces each — for example
Donut,LayoutLMv3,StableVideoDiffusion,BarkModel,WaveNet. In all but two cases the two declarations are independent implementations rather than copies, and they often differ several-fold in size. Code that imports both namespaces cannot use the bare name until one side is qualified.
The labels reflect a static review of the public repository. They are informational only — production adopters should validate against their own threat model and SLA requirements.
Platform Support
| Platform | Status |
|---|---|
| Windows | ✅ Full support |
| Linux | ✅ Full support |
| macOS | ✅ Full support |
| .NET 10.0 | ✅ Primary target |
| .NET 8.0+ | ✅ Supported |
| .NET Framework 4.7.1+ | ✅ Supported |
GPU Acceleration
| Backend | Status |
|---|---|
| CUDA (NVIDIA) | ✅ Full support |
| OpenCL | ✅ Full support |
| Metal (Apple) | 🚧 Coming soon |
Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
Areas where we especially welcome help:
- Additional model implementations
- Performance optimizations
- Documentation and examples
- Bug fixes and testing
Community
- Issues: Report bugs or request features
- Discussions: Ask questions or share ideas
- Security: Report vulnerabilities
License
Business Source License 1.1 — see LICENSE for full terms.
What's free (always, no license needed)
- Model training (all algorithms, all configurations)
- Model inference and prediction
- Data preprocessing, feature engineering, AutoML
- GPU acceleration on any hardware
- All utility functions and helpers
What requires a license
- Model save/load operations (SaveModel, LoadModel, Serialize, Deserialize)
- Free trial: 30 days or 10 operations, whichever comes first
License tiers
| Tier | Price | Who qualifies |
|---|---|---|
| Community | Free | Open-source, education, personal projects, companies <$1M revenue with <5 devs |
| Professional | $29/mo per seat | Commercial use, individual developers and small teams |
| Enterprise | $99/mo per seat | Large organizations, dedicated support, custom SLAs |
See the pricing page for details and to register for a free community license.
Each version automatically converts to Apache License 2.0 four years after release (per the BSL Change Date / fourth-anniversary clause in the LICENSE file).
Made with care for the .NET AI/ML community