--- tags: - pytorch_model_hub_mixin - model_hub_mixin --- # nvidia/domain-classifier This repository contains the code for the domain classifier model. # How to use in transformers To use the Domain classifier, use the following code: ```python3 import torch from torch import nn from transformers import AutoModel, AutoTokenizer, AutoConfig from huggingface_hub import PyTorchModelHubMixin class CustomModel(nn.Module, PyTorchModelHubMixin): def __init__(self, config): super(CustomModel, self).__init__() self.model = AutoModel.from_pretrained(config['base_model']) self.dropout = nn.Dropout(config['fc_dropout']) self.fc = nn.Linear(self.model.config.hidden_size, len(config['id2label'])) def forward(self, input_ids, attention_mask): features = self.model(input_ids=input_ids, attention_mask=attention_mask).last_hidden_state dropped = self.dropout(features) outputs = self.fc(dropped) return torch.softmax(outputs[:, 0, :], dim=1) # Setup configuration and model config = AutoConfig.from_pretrained("nvidia/domain-classifier") tokenizer = AutoTokenizer.from_pretrained("nvidia/domain-classifier") model = CustomModel.from_pretrained("nvidia/domain-classifier") # Prepare and process inputs text_samples = ["Sports is a popular domain", "Politics is a popular domain"] inputs = tokenizer(text_samples, return_tensors="pt", padding="longest", truncation=True) outputs = model(inputs['input_ids'], inputs['attention_mask']) # Predict and display results predicted_classes = torch.argmax(outputs, dim=1) predicted_domains = [config.id2label[class_idx.item()] for class_idx in predicted_classes.cpu().numpy()] print(predicted_domains) # ['Sports', 'News'] ```