BertModel.forward() got an unexpected keyword argument 'captions'
时间: 2025-03-13 07:00:09 浏览: 41
### 解决 `BertModel` 中 `forward` 函数意外关键字参数错误
当遇到调用 `BertModel.forward()` 时出现 unexpected keyword argument 'captions' 的错误,这通常意味着传递给模型的输入参数不匹配其预期定义。为了修正此问题,可以采取以下措施:
对于 PyTorch 版本的 BERT 模型,在调用 `forward` 方法时应仅提供该方法签名中声明的关键字参数。如果尝试传入未被接受的名字为 `'captions'` 的额外参数,则会引发异常。
一种解决方案是在向 `BertModel` 提供数据之前过滤掉不必要的参数[^1]。具体来说,可以通过构建一个新的字典来保存只包含有效键值对的数据集,并将其作为实际输入传递给模型。下面是一个简单的实现方式:
```python
def filter_inputs_for_bert(inputs, valid_keys=['input_ids', 'attention_mask']):
filtered = {k: v for k, v in inputs.items() if k in valid_keys}
return filtered
# 使用示例
inputs_with_captions = {
'input_ids': ...,
'attention_mask': ...,
'captions': ...
}
filtered_inputs = filter_inputs_for_bert(inputs_with_captions)
model_output = model(**filtered_inputs)
```
通过这种方式能够确保只有合法的参数会被送入到 `BertModel` 的前向传播过程中去。
阅读全文
相关推荐


















