Skip to main content

TransferEncoder

Trait TransferEncoder 

Source
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§

Source

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.

Source

fn unfreeze_base(&mut self)

Unfreeze the base encoder parameters.

Allows full fine-tuning of all parameters.

Source

fn is_frozen(&self) -> bool

Check if the base encoder is frozen.

Source

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

Implementors§