pub struct MultiGate {
pub layers: Vec<MultiGateResidual>,
pub n_stream: usize,
pub per_virtual: bool,
}Expand description
A stack of MultiGateResiduals for the enclosing
Layers. When per_virtual is false there is one
module per real layer (virtual layers reuse them by real index); when
true there is one per virtual layer (each virtual pass owns its own).
Fields§
§layers: Vec<MultiGateResidual>The MGR modules: length n_real_layers (per-real) or n_virtual_layers
(per-virtual) — see Self::per_virtual.
n_stream: usizeNumber of parallel residual streams n.
per_virtual: booltrue ⇒ one MGR per virtual layer (indexed by virtual position);
false ⇒ one per real layer (reused across virtual passes by real index).
Implementations§
Source§impl MultiGate
impl MultiGate
Sourcepub fn module_index(&self, virtual_idx: usize, real_idx: usize) -> usize
pub fn module_index(&self, virtual_idx: usize, real_idx: usize) -> usize
Index into Self::layers for a given (virtual_idx, real_idx) layer
position: the virtual index when each virtual layer owns its MGR
(Self::per_virtual), otherwise the real index.
Trait Implementations§
Source§impl Module for MultiGate
impl Module for MultiGate
Source§type Record = MultiGateRecord
type Record = MultiGateRecord
Type to save and load the module.
Source§fn load_record(self, record: Self::Record) -> Self
fn load_record(self, record: Self::Record) -> Self
Load the module state from a record.
Source§fn into_record(self) -> Self::Record
fn into_record(self) -> Self::Record
Convert the module into a record containing the state.
Source§fn num_params(&self) -> usize
fn num_params(&self) -> usize
Get the number of parameters the module has, including all of its sub-modules.
Source§fn visit<Visitor: ModuleVisitor>(&self, visitor: &mut Visitor)
fn visit<Visitor: ModuleVisitor>(&self, visitor: &mut Visitor)
Visit each tensor parameter in the module with a visitor.
Source§fn map<Mapper: ModuleMapper>(self, mapper: &mut Mapper) -> Self
fn map<Mapper: ModuleMapper>(self, mapper: &mut Mapper) -> Self
Map each tensor parameter in the module with a mapper.
Source§fn collect_devices(&self, devices: Devices) -> Devices
fn collect_devices(&self, devices: Devices) -> Devices
Return all the devices found in the underneath module tree added to the given vector
without duplicates.
Source§fn to_device(self, device: &Device) -> Self
fn to_device(self, device: &Device) -> Self
Move the module and all of its sub-modules to the given device. Read more
Source§fn fork(self, device: &Device) -> Self
fn fork(self, device: &Device) -> Self
Fork the module and all of its sub-modules to the given device. Read more
§fn devices(&self) -> Vec<Device>
fn devices(&self) -> Vec<Device>
Return all the devices found in the underneath module tree without duplicates.
§fn train(self) -> Selfwhere
Self: AutodiffModule,
fn train(self) -> Selfwhere
Self: AutodiffModule,
Move the module and all of its sub-modules to the autodiff backend. Read more
§fn quantize_weights(self, quantizer: &mut Quantizer) -> Self
fn quantize_weights(self, quantizer: &mut Quantizer) -> Self
Quantize the weights of the module.
Source§impl ModuleDisplay for MultiGate
impl ModuleDisplay for MultiGate
§fn format(&self, passed_settings: DisplaySettings) -> String
fn format(&self, passed_settings: DisplaySettings) -> String
Formats the module with provided display settings. Read more
§fn custom_settings(&self) -> Option<DisplaySettings>
fn custom_settings(&self) -> Option<DisplaySettings>
Custom display settings for the module. Read more
§fn custom_content(&self, _content: Content) -> Option<Content>
fn custom_content(&self, _content: Content) -> Option<Content>
Custom attributes for the module. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for MultiGate
impl !UnwindSafe for MultiGate
impl Freeze for MultiGate
impl Send for MultiGate
impl Sync for MultiGate
impl Unpin for MultiGate
impl UnsafeUnpin for MultiGate
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more