Eğitim döngüsü
Kayıp, gradyan biriktirme ve NexusOptim.
01Bir adımın sırası#
zero_grad → forward → loss.backward → model.backward → optimizer.step. Gradyanlar backward çağrıları boyunca toplanır. Mikro-batch biriktirmede bu istenir; bağımsız adımlar arasında temizlenmezse yanlış güncelleme olur.
02Ödünç parametre köprüsü#
as_param_group yalnız requires_grad=true parametrelerin veri ve gradyan işaretçilerini aktarır. Optimizer yaşarken parametre depolamasını değiştirmeyin veya modeli yok etmeyin. Adaptör çekirdekten ayrı include edilir.
#include <nexus_model/adapters/nexus_optim.hpp>#include <nexus_optim/algorithms/adamw.hpp>nexus_optim::ParamGroupOptions group;group.learning_rate = 1e-2;nexus_optim::AdamW<float>::Options options;options.lr = 1e-2;options.weight_decay = 1e-2;nexus_optim::AdamW<float> optimizer( {nexus_model::as_param_group(model, group)}, options);03Logitlerden gradyana#
Örnekte CrossEntropyLoss<float> her satır için çağrılır. backward sonucu bir sonraki satırdan önce kopyalanır ve batch boyutuna bölünür. CrossEntropy’ye logit verin; önceden Softmax eklemeyin.
04Uçtan uca örnek#
NexusData, NexusLoss ve NexusOptim aynı üst klasörde bulunmalı. Örnek 96 sentetik örnek, 8 özellik, 3 sınıf ve 8 epoch AdamW kullanır. Bu bir entegrasyon kontrolüdür.
cmake -S . -B build-e2e -DNEXUS_MODEL_BUILD_EXAMPLES=ONcmake --build build-e2e --config Release.\build-e2e\Release\train_end_to_end.exe