使用transformers模型时遇到文件损坏问题

使用transformers模型时遇到以下报错

Loading checkpoint shards:   0%|                                                                                                                               | 0/2 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "/home/yunchuan/miniconda3/envs/lavad/lib/python3.10/site-packages/transformers/modeling_utils.py", line 460, in load_state_dict
    return torch.load(checkpoint_file, map_location="cpu")
  File "/home/yunchuan/miniconda3/envs/lavad/lib/python3.10/site-packages/torch/serialization.py", line 789, in load
    return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)
  File "/home/yunchuan/miniconda3/envs/lavad/lib/python3.10/site-packages/torch/serialization.py", line 1131, in _load
    result = unpickler.load()
  File "/home/yunchuan/miniconda3/envs/lavad/lib/python3.10/site-packages/torch/serialization.py", line 1101, in persistent_load
    load_tensor(dtype, nbytes, key, _maybe_decode_ascii(location))
  File "/home/yunchuan/miniconda3/envs/lavad/lib/python3.10/site-packages/torch/serialization.py", line 1079, in load_tensor
    storage = zip_file.get_storage_from_record(name, numel, torch.UntypedStorage).storage().untyped()
RuntimeError: PytorchStreamReader failed reading file data/43: invalid header or archive is corrupted

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/yunchuan/miniconda3/envs/lavad/lib/python3.10/site-packages/transformers/modeling_utils.py", line 464, in load_state_dict
    if f.read(7) == "version":
  File "/home/yunchuan/miniconda3/envs/lavad/lib/python3.10/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 128: invalid start byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/yunchuan/ceshi/blip2_test.py", line 9, in <module>
    model = Blip2ForConditionalGeneration.from_pretrained(
  File "/home/yunchuan/miniconda3/envs/lavad/lib/python3.10/site-packages/transformers/modeling_utils.py", line 2903, in from_pretrained
    ) = cls._load_pretrained_model(
  File "/home/yunchuan/miniconda3/envs/lavad/lib/python3.10/site-packages/transformers/modeling_utils.py", line 3246, in _load_pretrained_model
    state_dict = load_state_dict(shard_file)
  File "/home/yunchuan/miniconda3/envs/lavad/lib/python3.10/site-packages/transformers/modeling_utils.py", line 476, in load_state_dict
    raise OSError(
OSError: Unable to load weights from pytorch checkpoint file for '/home/yunchuan/.cache/huggingface/transformers/Salesforce/blip2-flan-t5-xl-coco/pytorch_model-00001-of-00002.bin' at '/home/yunchuan/.cache/huggingface/transformers/Salesforce/blip2-flan-t5-xl-coco/pytorch_model-00001-of-00002.bin'. If you tried to load a PyTorch model from a TF 2.0 checkpoint, please set from_tf=True.

检查了下是模型下载时损坏的问题
可用以下代码检查模型文件是否损坏

import torch
state_dict = torch.load('/home/yunchuan/.cache/huggingface/transformers/Salesforce/blip2-flan-t5-xl-coco/pytorch_model-00002-of-00002.bin', map_location=torch.device('cpu'))

如果报错证明文件损坏

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Transformers库自己训练一个模型,您需要进行以下步骤: 1. 准备数据:准备您的训练数据集,并将其整理为适合模型输入的格式。这可能涉及到数据清洗、分词、标记化等预处理操作。 2. 加载预训练模型:选择适合您任务的预训练模型,并使用`from_pretrained()`方法加载模型。您可以选择不同的模型架构(如BERT、GPT、RoBERTa等)和模型大小(如base、large等)。 3. 创建模型:根据您的任务类型,使用预训练模型构建一个适当的分类器、生成器或序列标注器等。您可以根据需要微调预训练模型的不同层。 4. 准备训练器:选择合适的优化器和损失函数,并设置训练的超参数,如学习率、批量大小、训练迭代次数等。 5. 训练模型使用准备好的数据集和训练器进行模型训练。在每个训练迭代中,将数据输入模型,计算损失并进行反向传播更新模型参数。 6. 评估模型:在训练过程中或训练结束后,使用验证集或测试集评估模型的性能。这可以包括计算准确率、精确度、召回率、F1分数等指标。 7. 保存模型:在训练结束后,保存训练好的模型以便后续使用使用`save_pretrained()`方法将模型保存到磁盘上。 这是一个基本的训练流程示例。具体的实现可能因任务类型、数据集和需求而有所不同。Transformers库提供了丰富的功能和示例代码,可以帮助您更轻松地进行模型训练。 如果您需要更详细的代码示例或有特定的问题,请告诉我,我将尽力提供帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值