model在CPU上能正常运行在GPU上却卡住

1、torch.sigmoid
2、lstm的hidden_size先改成很小的,后来又增上去;
3、最最根本的原因是:cpu和cuda之间的数据传输太多,导致很慢很慢!!!

true=label.cuda()
pred=torch.sigmoid(pred).cuda()
loss = criterion(pred.float(), true.float())

改成

true 
在加载 `.safetensors` 文件时,如果代码卡住,通常与文件的完整性、元数据缺失或加载逻辑相关。以下是几种可能的原因及对应的解决方案: ### 1. **元数据缺失导致加载失败** 当 `.safetensors` 文件在保存时未包含元数据(如 `"format"` 字段),某些库(如 Hugging Face Transformers)在解析时可能无法识别文件格式,从而导致加载失败或卡住。 解决方案是重新保存文件并添加必要的元数据。例如,可以使用以下代码为 `.safetensors` 文件添加 `"format": "pt"` 元数据: ```python from safetensors import safe_open from safetensors.torch import save_file safetensor_path = "ckpt/sd/text_encoder/model.safetensors" fname, ext = safetensor_path.split("/")[-1].split(".") tensors = dict() with safe_open(safetensor_path, framework="pt", device="cpu") as f: for key in f.keys(): tensors[key] = f.get_tensor(key) save_file(tensors, f"ckpt/sd/text_encoder/{fname}-with-format.{ext}", metadata={"format": "pt"}) ``` 加载时,确保指定 `local_files_only=True` 以避免从远程下载模型: ```python loaded_model = AutoModelForSequenceClassification.from_pretrained("my_model_safetensors", local_files_only=True) ``` ### 2. **文件损坏或格式兼容** 如果 `.safetensors` 文件在保存过程中出现错误,或者文件损坏,加载时也可能卡住。可以通过以下方式验证文件的完整性: - 使用 `safe_open` 手动读取文件并检查张量键值: ```python from safetensors import safe_open with safe_open("model.safetensors", framework="pt", device="cpu") as f: for key in f.keys(): print(key) ``` 如果该过程卡住或抛出异常,则可能是文件损坏,建议重新生成 `.safetensors` 文件。 ### 3. **加载时的设备配置问题** 在加载 `.safetensors` 文件时,如果指定的设备(如 GPU可用或内存足,也可能导致程序卡住。可以尝试将加载设备指定为 CPU: ```python loaded_model = AutoModelForSequenceClassification.from_pretrained("my_model_safetensors", local_files_only=True, device_map="cpu") ``` ### 4. **Hugging Face Transformers 版本兼容性问题** 某些版本的 Hugging Face Transformers 库对 `.safetensors` 文件的支持可能存在兼容性问题。建议升级到最新版本以确保兼容性: ```bash pip install --upgrade transformers ``` ### 5. **使用多线程或异步加载优化性能** 如果模型较大,加载过程可能耗时较长。可以尝试使用异步加载或并行处理来优化性能。例如,使用 `torch` 的异步数据加载机制: ```python import torch # 使用异步加载 state_dict = torch.load("model.safetensors", map_location="cpu", weights_only=True) ``` ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值