根据这个链接,我尝试使用自己的数据进行情感分析。但是我遇到了以下错误:
---------------------------------------------------------------------------RuntimeError Traceback (most recent call last)<timed exec> in <module><ipython-input-41-5f2f35b7976e> in train_epoch(model, data_loader, optimizer, device, scheduler, n_examples) 7 8 for d in data_loader:----> 9 input_ids = d["input_ids"].reshape(4,64).to(device) 10 attention_mask = d["attention_mask"].to(device) 11 targets = d["targets"].to(device)RuntimeError: shape '[4, 64]' is invalid for input of size 64
当我尝试运行以下代码时
history = defaultdict(list)best_accuracy = 0for epoch in range(EPOCHS): print(f'Epoch {epoch + 1}/{EPOCHS}') print('-' * 10) train_acc, train_loss = train_epoch( model, train_data_loader, optimizer, device, scheduler, len(df_train) ) print(f'Train loss {train_loss} Train accuracy {train_acc}') val_acc, val_loss = eval_model( model, val_data_loader, device, len(df_val) ) print(f'Val loss {val_loss} Val accuracy {val_acc}') print() history['train_acc'].append(train_acc) history['train_loss'].append(train_loss) history['val_acc'].append(val_acc) history['val_loss'].append(val_loss)
我知道这个错误与我的数据形状有关,但我不知道如何找到正确的reshape
参数来使其正常工作。
回答:
你示例中的形状[4,64]实际上是[批量大小, 最大序列长度]
所以你可以考虑用你的值来替换它们…