OSError: Unable to load weights from h5 file. If you tried to load a TF 2.0 model from a PyTorch che

1. 出问题代码

model = TFBertForSequenceClassification.from_pretrained("bert-base-chinese", num_labels=2, from_pt=True)

2. 报错信息

To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
Traceback (most recent call last):
  File "D:\Anaconda\lib\site-packages\transformers\modeling_tf_utils.py", line 1292, in from_pretrained
    missing_keys, unexpected_keys = load_tf_weights(model, resolved_archive_file, load_weight_prefix)
  File "D:\Anaconda\lib\site-packages\transformers\modeling_tf_utils.py", line 471, in load_tf_weights
    with h5py.File(resolved_archive_file, "r") as f:
  File "D:\Anaconda\lib\site-packages\h5py\_hl\files.py", line 406, in __init__
    fid = make_fid(name, mode, userblock_size,
  File "D:\Anaconda\lib\site-packages\h5py\_hl\files.py", line 173, in make_fid
    fid = h5f.open(name, flags, fapl=fapl)
  File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "h5py\h5f.pyx", line 88, in h5py.h5f.open
OSError: Unable to open file (truncated file: eof = 242385056, sblock->base_addr = 0, stored_eof = 478309336)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "D:\pycharm\PyCharm Community Edition 2020.2\plugins\python-ce\helpers\pydev\pydevd.py", line 1448, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "D:\pycharm\PyCharm Community Edition 2020.2\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "F:/09-code/11-自然语言处理与知识图谱/pypro/chapters03/demo02_Bert实现文本分类.py", line 33, in <module>
    model = TFBertForSequenceClassification.from_pretrained("bert-base-chinese", num_labels=2)
  File "D:\Anaconda\lib\site-packages\transformers\modeling_tf_utils.py", line 1294, in from_pretrained
    raise OSError(
OSError: Unable to load weights from h5 file. If you tried to load a TF 2.0 model from a PyTorch checkpoint, please set from_pt=True. 

3. 报错分析

The error you’re encountering seems to be related to loading weights from an H5 file for the TFBertForSequenceClassification model in TensorFlow. Let’s break down the error message to understand the problem better and create a step-by-step plan to resolve it.

  1. Error Analysis:

    • Truncated File: The error OSError: Unable to open file (truncated file: eof = 242385056, sblock->base_addr = 0, stored_eof = 478309336) suggests that the H5 file you’re trying to load is truncated or incomplete. This could happen due to an interrupted download or a file corruption issue.
    • Loading Weights Error: The second part of the error, OSError: Unable to load weights from h5 file. If you tried to load a TF 2.0 model from a PyTorch checkpoint, please set from_pt=True, indicates a problem with loading the weights. It suggests that if you’re trying to load a model trained in PyTorch into TensorFlow, you should use the from_pt=True argument.
  2. Step-by-Step Plan:

    • Step 1: Verify the Integrity of the H5 File:
      • Ensure that the file is completely and correctly downloaded. You might need to redownload the file if it’s corrupted.
    • Step 2: Check Model Source:
      • Determine if the model you’re trying to load is originally a PyTorch model. If yes, use the from_pt=True argument in the from_pretrained method.
    • Step 3: Reinstall/Update Dependencies:
      • Sometimes, such errors can be caused by outdated or corrupted installations. Consider reinstalling or updating transformers and h5py libraries.
    • Step 4: Check TensorFlow Version:
      • Ensure that your TensorFlow version is compatible with the version used for the model. Incompatibility can lead to such errors.
  3. Default Assumptions:

    • If no additional information is provided, I will assume that the H5 file is intended to be compatible with TensorFlow and that you have a stable internet connection for downloading files.
  4. Additional Information:

    • It would be helpful to know where you obtained the H5 file and if it’s a custom-trained model or a pre-trained model provided by Hugging Face or another source.
  5. Confirmation:

    • Please confirm if the above plan seems appropriate, or if you have any specific details to add regarding the source of the model or the setup of your environment.

4. 修改后代码, 问题解决

from_pretrained方法新增了from_pt=True

model = TFBertForSequenceClassification.from_pretrained("bert-base-chinese", num_labels=2, from_pt=True)
  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值