autointent.modules.RNNScorer#
- class autointent.modules.RNNScorer(embed_dim=128, hidden_dim=512, n_layers=2, dropout=0.1, num_train_epochs=3, batch_size=8, learning_rate=5e-05, seed=42, device=None, vocab_config=None, early_stopping_config=None)#
Bases:
autointent.modules.scoring._torch.base_scorer.BaseTorchScorer
Recurrent Neural Network (RNN) scorer for intent classification.
This module uses an RNN architecture to perform intent classification on text data. It builds a vocabulary from input text, converts text to indices, and trains an RNN model with multiple recurrent layers for sequential feature extraction. The RNN processes text sequentially, making it well-suited for capturing temporal dependencies in language. Supports both multiclass and multilabel classification tasks.
- Parameters:
embed_dim (int) – Dimensionality of word embeddings (default: 128)
hidden_dim (int) – Dimensionality of hidden states in RNN layers (default: 512)
n_layers (int) – Number of recurrent layers (default: 2)
dropout (float) – Dropout rate for regularization (default: 0.1)
num_train_epochs (int) – Number of training epochs (default: 3)
batch_size (int) – Batch size for training (default: 8)
learning_rate (float) – Learning rate for training (default: 5e-5)
seed (int) – Random seed for reproducibility (default: 42)
device (str | None) – Device for training (‘cpu’, ‘cuda’, etc.), auto-detected if None
vocab_config (autointent.configs.VocabConfig | dict[str, Any] | None) – Configuration for vocabulary building
early_stopping_config (autointent.configs.EarlyStoppingConfig | dict[str, Any] | None) – Configuration for early stopping during training
Example:#
from autointent.modules.scoring import RNNScorer # Initialize RNN scorer with custom parameters scorer = RNNScorer( embed_dim=16, hidden_dim=16, n_layers=1, dropout=0.2, num_train_epochs=1, batch_size=2, learning_rate=1e-4, seed=42 ) # Training data utterances = ["This is great!", "I didn't like it", "Awesome product", "Poor quality"] labels = [1, 0, 1, 0] # Fit the model scorer.fit(utterances, labels) # Make predictions test_utterances = ["Good product", "Not worth it"] probabilities = scorer.predict(test_utterances)
- name = 'rnn'#
Name of the module to reference in search space configuration.
- embed_dim = 128#
- n_layers = 2#
- dropout = 0.1#
- classmethod from_context(context, embed_dim=128, hidden_dim=512, n_layers=2, dropout=0.1, num_train_epochs=3, batch_size=8, learning_rate=5e-05, seed=42, vocab_config=None, early_stopping_config=None)#
Create a RNNScorer from context.
- Parameters:
context (autointent.Context)
embed_dim (int)
hidden_dim (int)
n_layers (int)
dropout (float)
num_train_epochs (int)
batch_size (int)
learning_rate (float)
seed (int)
vocab_config (autointent.configs.VocabConfig | dict[str, Any] | None)
early_stopping_config (autointent.configs.EarlyStoppingConfig | dict[str, Any] | None)
- Return type: