Ошибка выполнения в мультимодальной задаче на основе pytoch-lightning

def _build_model(self):
    
    lang_module = torch.nn.Linear(
            in_features=self.embedding_dim,
            out_features=self.language_feature_dim
    )        
   
    vision_module = torchvision.models.resnet152(
        pretrained=True
    )
    vision_module.fc = torch.nn.Linear(
            in_features=2048,
            out_features=self.vision_feature_dim
    )

Здравствуйте, я работал над мультимодальной классификацией на основе челленджа ненависти в Facebook. Я пытался изменить базовый код, как указано выше, с помощью предварительно обученной модели BERT с кодом ниже

    lang_module = BertForSequenceClassification.from_pretrained(
        "bert-base-uncased", 
        num_labels = 2,
        output_attentions = False, 
        output_hidden_states = False, 
    )
    lang_module.fc = torch.nn.Linear(
        in_features=self.embedding_dim, #150
        out_features=self.language_feature_dim #300
    )

Но я получаю RTE, в котором говорится

RuntimeError: Expected tensor for argument #1 'indices' to have scalar type Long; but got 
torch.cuda.FloatTensor instead (while checking arguments for embedding)

с примечанием перед показом RTE:

Некоторые веса модели контрольной точки в bert-base-uncased не использовались при инициализации BertForSequenceClassification: ['cls.predictions.bias', 'cls.predictions.transform.dense.weight', 'cls.predictions.transform.dense.bias', 'cls.predictions.decoder.weight', 'cls.seq_relationship.weight', 'cls.seq_relationship.bias', 'cls.predictions.transform.LayerNorm.weight', 'cls.predictions.transform.LayerNorm.bias']

  • Это ожидается, если вы инициализируете BertForSequenceClassification из контрольной точки модели, обученной для другой задачи или с другой архитектурой (например, инициализируя модель BertForSequenceClassification из модели BertForPretraining).
  • Этого НЕ ожидается, если вы инициализируете BertForSequenceClassification из контрольной точки модели, которая, как вы ожидаете, будет точно идентичной (инициализация модели BertForSequenceClassification из модели BertForSequenceClassification). Некоторые веса BertForSequenceClassification не были инициализированы из контрольной точки модели в bert-base-uncased и инициализированы заново: ['classifier.weight', 'classifier.bias']. Вероятно, вам следует ОБУЧИТЬ эту модель в последующей задаче использовать его для предсказаний и выводов.

Поэтому я просто хочу проверить, как это работает с предварительно обученной моделью BERT для классификации текста. Любая помощь будет очень оценена.

0 ответов

Другие вопросы по тегам