RuntimeError, работающий на IA tryna, использует предварительно обученную модель BERT - PullRequest
0 голосов
/ 06 марта 2020

Привет, вот часть моего кода для использования предварительно обученной модели Берта для классификации:

    model = BertForSequenceClassification.from_pretrained(
     "bert-base-uncased", # Use the 12-layer BERT model, with an uncased vocab.
     num_labels = 2, # The number of output labels--2 for binary classification.
                    # You can increase this for multi-class tasks.   
     output_attentions = False, # Whether the model returns attentions weights.
     output_hidden_states = False, # Whether the model returns all hidden-states.
    )

...

for step, batch in enumerate(train_dataloader):

b_input_ids = batch[0].to(device)
    b_input_mask = batch[1].to(device)
    b_labels = batch[2].to(device)

outputs = model(b_input_ids, 
                token_type_ids=None,
                attention_mask=b_input_mask, 
                labels=b_labels)

, но затем я получаю это сообщение об ошибке :

RuntimeError: Ожидаемый тензор для аргумента # 1 «индексы» будет иметь скалярный тип Long;

, но вместо этого получил torch.IntTensor (при проверке аргументов для встраивания) Я думаю, что я должен преобразовать свой b_input_ids в тензор, но не знаю, как это сделать. Большое спасибо за вашу помощь всем!

1 Ответ

0 голосов
/ 06 марта 2020

Наконец-то получилось, используя .to (torch.int64)

...