Привет, вот часть моего кода для использования предварительно обученной модели Берта для классификации:
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
в тензор, но не знаю, как это сделать. Большое спасибо за вашу помощь всем!