autointent.modules.scoring.CNNScorer#
- class autointent.modules.scoring.CNNScorer(embed_dim=128, kernel_sizes=[3, 4, 5], num_filters=100, 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
Convolutional Neural Network (CNN) scorer for intent classification.
This module uses a CNN architecture to perform intent classification on text data. It builds a vocabulary from input text, converts text to indices, and trains a CNN model with multiple convolutional layers with different kernel sizes for feature extraction. Supports both multiclass and multilabel classification tasks.
- Parameters:
embed_dim (int) – Dimensionality of word embeddings (default: 128)
kernel_sizes (list[int]) – List of kernel sizes for convolutional layers (default: [3, 4, 5])
num_filters (int) – Number of filters for each kernel size (default: 100)
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 CNNScorer # Initialize CNN scorer with custom parameters scorer = CNNScorer( embed_dim=16, kernel_sizes=[2, 3, 4], num_filters=3, 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 = 'cnn'#
Name of the module to reference in search space configuration.
- embed_dim = 128#
- kernel_sizes = [3, 4, 5]#
- num_filters = 100#
- dropout = 0.1#
- classmethod from_context(context, embed_dim=128, kernel_sizes=[3, 4, 5], num_filters=100, dropout=0.1, num_train_epochs=3, batch_size=8, learning_rate=5e-05, seed=42, vocab_config=None, early_stopping_config=None)#
Initialize self from context.
- Parameters:
context (autointent.Context) – Context to init from
**kwargs – Additional kwargs
embed_dim (int)
num_filters (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)
- Returns:
Initialized module
- Return type: