Skip to content

[已解決] HuggingFace Transformers 模型返回 “‘ValueError: too many values to unpack (expected 2)’, upon training a Bert binary classification model”

在現今深度學習的框架中,無論是使用 Tensorflow、PyTorch 還是其他框架,模型的輸入輸出、資料流向…… 等等,我們都需要十分注意其資料的形狀(shape)。因為一不小心,就會讓模型架構回傳錯誤訊息。

而下面的的錯誤正是此類:

'ValueError: too many values to unpack (expected 2)', upon training a Bert binary classification model


這個錯誤訊息正是告訴我們,我們傳入 BERT 模型中的資料有過多的維度。通常傳入 HuggingFace BERT 模型的維度應為 (batch_size, seq_len),但可能不小心多出了維度,這就會引發上述的錯誤訊息。


解決方法

傳入 BERT 模型的資料為 input_ids,有時候還包含 attention_mask,但最好是想辦法用 shape 來查看一下資料的形狀,兩者都要。

如果形狀真的跟模型所需的輸入不同,就再看看該如何調整。比方說,像是輸入時形狀意外地為 (1, batch_size, seq_length) 的時候,我們就可以用:

input_ids = input_ids.squeeze(0)


來把錯誤的形狀給去除。當然,需要依照不同的形狀來調整。


References


Read More

Leave a Reply