AiDotNet:纯 .NET 深度学习框架,支持 160+ 神经网络架构
ooples/AiDotNet
AiDotNet 是一个纯 .NET 深度学习框架,提供 160+ 神经网络架构、155+ 经典 ML 算法、115+ 计算机视觉模型和 250+ 音频处理模型,并原生集成 HuggingFace、支持 CUDA/OpenCL/Vulkan GPU 加速与 DDP/FSDP/ZeRO 分布式训练。
Why AiDotNet?
| Feature | AiDotNet | TorchSharp | TensorFlow.NET | ML.NET | Accord.NET |
|---|---|---|---|---|---|
| Neural Network Architectures | 160+ | 50+ | 30+ | ~10 | ~20 |
| Classical ML Algorithms | 155+ | None | None | ~30 | ~50 |
| Computer Vision Models | 115+ | Via PyTorch | Via TF | Limited | Limited |
| Audio Processing | 250+ | Limited | Limited | None | Basic |
| Reinforcement Learning | 50+ agents | Manual | Limited | None | None |
| Diffusion Models | 75+ | Manual | None | None | None |
| LoRA Fine-tuning | 50+ adapters | Manual | None | None | None |
| RAG Components | 50+ | None | None | None | None |
| Distributed Training | DDP, FSDP, ZeRO | DDP only | MirroredStrategy | None | None |
| HuggingFace Integration | Native | Partial | Partial | None | None |
| GPU Acceleration | CUDA, OpenCL, Vulkan | Via LibTorch | Via TF Runtime | Limited | None |
| Pure .NET (No Runtime) | Yes | No (LibTorch) | No (TF Runtime) | Yes | Yes |
| Startup Time | Fast | Slow | Slow | Fast | Fast |
| Memory/Span Support | Full | Limited | Limited | Limited | None |
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
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 (160+ Architectures)
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 (115+ Models)
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 (250+ Models)
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 (80+ Models)
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 (50+ Agents)
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 (30+ Models)
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 (50+ Components)
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 (50+ Adapters)
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 (75+ 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,AudioLDM2ModelMusicGenModelRiffusionModelDiffWaveModel
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 (18+ Algorithms)
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 (10+ Methods)
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 (40+)
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 (37+)
- 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).
来源:GitHub · github.com