autointent.modules.scoring.RNNScorer#

class autointent.modules.scoring.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#
hidden_dim = 512#
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:
Return type:

RNNScorer