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:
Returns:

Initialized module

Return type:

CNNScorer