Last Updated on 2022-08-08 by Clay
在現今深度學習的框架中,無論是使用 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
- Huggingface Transformers returning 'ValueError: too many values to unpack (expected 2)', upon training a Bert binary classification model
- ValueError: too many values to unpack (expected 2) when using BertTokenizer