IgdrasilAI Training

Training

Интерфейсы для обучения моделей: ITrainableModel, IOptimizer, ILossFunction.

Компоненты

Пример

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);

Реализации