pub trait TransferEncoder: Module {
// Required methods
fn freeze_base(&mut self);
fn unfreeze_base(&mut self);
fn is_frozen(&self) -> bool;
fn get_features(&self, x: &Tensor) -> Tensor;
}Expand description
Trait for encoders that support transfer learning operations.
Extends the base Module trait with methods for freezing/unfreezing
parameters and extracting intermediate features.
§Example
ⓘ
use aprender::transfer::TransferEncoder;
let mut encoder = create_encoder();
// Pre-train on source domain
train(&mut encoder, source_data);
// Freeze base for transfer
encoder.freeze_base();
// Fine-tune on target domain (only head trains)
train(&mut encoder, target_data);
// Optionally unfreeze for full fine-tuning
encoder.unfreeze_base();Required Methods§
Sourcefn freeze_base(&mut self)
fn freeze_base(&mut self)
Freeze the base encoder parameters.
After calling this, the encoder’s parameters won’t be updated during training. Only task-specific heads will be trainable.
Sourcefn unfreeze_base(&mut self)
fn unfreeze_base(&mut self)
Unfreeze the base encoder parameters.
Allows full fine-tuning of all parameters.
Sourcefn get_features(&self, x: &Tensor) -> Tensor
fn get_features(&self, x: &Tensor) -> Tensor
Extract intermediate features from the encoder.
Returns embeddings before any task-specific heads, useful for:
- Feature visualization
- Similarity computation
- Multi-task learning