File "E:\pycharm-workspace\BERT\BERT-BiLSTM-CRF-NER-master\bert_base\bert\optimization.py", line 83, in create_optimizer zip(grads, tvars), global_step=global_step) TypeError: apply_gradients() got an unexpected keyword argument 'global_step'
时间: 2023-10-08 07:11:06 浏览: 239
根据你提供的错误信息,在调用 `apply_gradients()` 函数时出现了一个意外的关键字参数 `global_step`。
这个问题可能是由于你使用的 TensorFlow 版本与 transformers 库中的优化器不兼容导致的。
在较新的 TensorFlow 版本中,`apply_gradients()` 函数没有 `global_step` 这个关键字参数。然而,旧版本的 transformers 库可能仍然依赖于这个参数。
为了解决这个问题,你可以尝试以下两种方法之一:
1. 更新 transformers 库:确保你正在使用最新版本的 transformers 库,其中已经更新了优化器的实现,以适应最新的 TensorFlow API。运行以下命令更新 transformers 库:
```
pip install --upgrade transformers
```
2. 修改优化器代码:如果你无法更新 transformers 库或者仍然遇到问题,你可以尝试修改优化器代码,删除 `apply_gradients()` 函数中的 `global_step` 参数。
在文件 `optimization.py` 中找到 `create_optimizer` 函数,在以下代码行前添加一个注释(#)以删除 `global_step` 参数:
```python
# global_step=global_step
```
修改后的代码应如下所示:
```python
optimizer = tf.compat.v1.train.AdamOptimizer(
learning_rate=learning_rate,
epsilon=epsilon
)
train_op = optimizer.apply_gradients(
zip(grads, tvars)
# global_step=global_step
)
```
请注意,修改优化器代码可能会影响到其他部分的功能,因此请谨慎操作并进行充分的测试。
如果问题仍然存在或者你有其他相关问题,请随时提问。
阅读全文