Çekirdek API kataloğu
Tensor, Module, Parameter ve durum işlemlerinin hızlı referansı.
Doğrudan uygulamadaninclude/nexus_model/nexus_model.hpp
01Include ve hata tipi#
nexus_model/nexus_model.hpp katman, çekirdek, konteyner ve serileştirme API’lerini birleştirir. NexusOptim adaptörü, MatrixFlash köprüsü ve CUDA başlıkları ayrı include edilir. ModelError, std::runtime_error’dan türeyen metin mesajlı hata tipidir; bütün geçersiz girdilerin otomatik denetlendiğini varsaymayın.
02Tensor metotları#
Aşağıdaki metotlar yoğun float32 depolama içindir. const overload’lar salt okunur erişim sunar. Paylaşımlı Tensor başlığı veriyi kopyalamaz; bunun için clone çağırın.
| Metot | Sözleşme |
|---|---|
| Tensor() | empty: rank=0, numel=0 |
| Tensor(shape) | allocate uninitialized storage |
| zeros(shape) | allocate + zero |
| full(shape,value) | allocate + fill |
| from_values(shape,values) | value count must match numel |
| borrow(float*,shape) | nonowning external memory |
| rank(), numel(), empty() | shape metadata |
| dims(), shape_vec(), size(axis) | dimensions / copied vector / checked axis |
| same_shape(other) | rank and dimensions equality |
| data(), operator[](i) | raw pointer / unchecked element |
| zero(), fill(value) | in-place writes |
| copy_from(src) | resize + copy bytes |
| clone() | independent storage copy |
| reshape(shape) | shared view; one size_t(-1) allowed |
| view_as(dims,rank) | shared view; concrete shape |
| resize(shape), resize_like(src) | reuse when uniquely owned and capacity sufficient |
| resize_dims(dims,rank) | low-level resize |
| allocation_count() | atomic AlignedStorage allocation counter |
03Module ve Parameter#
Kayıt fonksiyonları protected; kendi Module alt sınıfınız içinden çağrılır. state_dict yalnız data ve buffer snapshot’ı üretir. API işaretçilerinin yaşam süresi bağlı oldukları modelin ömrüyle sınırlıdır.
| API | Anlam |
|---|---|
| Module::forward(input) | output + cache |
| Module::backward(grad_output) | input gradient; accumulates parameter gradients |
| parameters() | vector<Parameter*> |
| named_parameters(prefix="") | vector<pair<string,Parameter*>> |
| zero_grad() | clear all registered parameter gradients |
| train(), eval(), is_training() | recursive mode / current mode |
| state_dict() | independent clones |
| load_state_dict(state,strict=true) | validate keys and shapes; copy values |
| register_parameter(name,ptr) | register learnable state |
| register_buffer(name,ptr) | register nonlearnable state |
| register_module(name,ptr) | register child module |
| Parameter(values,need_grad=true) | data + zero grad + requires_grad |
| Parameter::accumulate_grad_locked(extra) | locked replica merge; size checked |
| StateDict::items | map<string,Tensor> |
| save_state_dict(state,path) | write NXM1 |
| load_state_dict_file(path) | read NXM1 |
◆Kaynak kodla birlikte okuyun. API davranışı mevcut uygulamayı esas alır.