IgdrasilAI Training
Training
Интерфейсы для обучения моделей: ITrainableModel, IOptimizer, ILossFunction.
Компоненты
ITrainableModel— обучаемая модель (шаг обучения, валидация, checkpoint)ITrainingConfig— конфигурация обученияIOptimizer— оптимизатор (Adam/SGD/AdamW и т.д.)ILossFunction— функция потерь (MSE, CrossEntropy)
Пример
var config = new TrainingConfig
{
LearningRate = 1e-4f,
BatchSize = 32,
NumEpochs = 10,
Optimizer = "Adam",
LossFunction = "MSE"
};
await trainableModel.InitializeTrainingAsync(config);
var step = await trainableModel.TrainStepAsync(input, target);
Пример: Optimizer и Loss (GPU-aware)
// При наличии GPU математики используем её в оптимизаторе/лоссе
IGpuMathOps? gpuOps = backend as IGpuMathOps;
IOptimizer optimizer = new SgdOptimizer(learningRate: 1e-3f, momentum: 0.9f, gpuOps: gpuOps);
ILossFunction loss = new MseLoss(LossReduction.Mean, gpuOps: gpuOps);
await optimizer.InitializeAsync();
// Предсказания и targets
var predictions = new SimpleTensor(new[] { 4 }, NeuralDataType.Float32, cpuDevice, new float[] { 0.1f, 0.5f, 0.3f, 0.1f });
var targets = new SimpleTensor(new[] { 4 }, NeuralDataType.Float32, cpuDevice, new float[] { 0f, 1f, 0f, 0f });
var lossValue = await loss.ComputeLossAsync(predictions, targets);
var grad = await loss.ComputeGradientAsync(predictions, targets);
// Обновление параметров
await optimizer.ApplyGradientsAsync(predictions, grad);
Реализации
- Optimizers:
SgdOptimizer,AdamOptimizer,AdamWOptimizer,RmsPropOptimizer - Losses:
MseLoss,CrossEntropyLoss,HuberLoss