当前位置: 首页 > news >正文

torch indices x[indices] 内存不足崩溃,python进程锁报错。

报错

Process Process-167:
Traceback (most recent call last):File "/usr/lib/python3.10/multiprocessing/process.py", line 317, in _bootstraputil._exit_function()File "/usr/lib/python3.10/multiprocessing/util.py", line 360, in _exit_function_run_finalizers()File "/usr/lib/python3.10/multiprocessing/util.py", line 300, in _run_finalizersfinalizer()File "/usr/lib/python3.10/multiprocessing/util.py", line 224, in __call__res = self._callback(*self._args, **self._kwargs)File "/usr/lib/python3.10/multiprocessing/queues.py", line 199, in _finalize_jointhread.join()File "/usr/lib/python3.10/threading.py", line 1096, in joinself._wait_for_tstate_lock()File "/usr/lib/python3.10/threading.py", line 1116, in _wait_for_tstate_lockif lock.acquire(block, timeout):

看到进程锁,我人都麻了,找了好多天,然后每一行的去看,发现是这里出了问题X[mask.expand_as(X)]
这里的X如果很大的话,就会崩溃,所以我们需要分chunk去做。
这是会崩溃的代码,会在最后一行崩溃。

import torch
X=torch.rand([2957312, 1024])
mask=torch.randint(2,[2957312, 1],dtype=bool)
X=X[mask.expand_as(X)]

这是修正后,分chunk去做的代码

import torch
def select_elements(X, mask, chunk_size=10000):selected_indices = []for i in range(0, len(X), chunk_size):chunk = X[i:i + chunk_size]chunk_mask = mask[i:i + chunk_size]expanded_mask = chunk_mask.expand_as(chunk)selected_chunk = chunk[expanded_mask]selected_indices.append(selected_chunk)selected_indices = torch.cat(selected_indices)return selected_indices
X=torch.rand([2957312, 1024])
mask=torch.randint(2,[2957312, 1],dtype=bool)
X=select_elements(X, mask)

这样就运行成功了。

http://www.lryc.cn/news/248650.html

相关文章:

  • 第二证券:机构争分夺秒抢滩 金融大模型落地为时尚早
  • C#WPF使用MaterialDesign 显示带遮罩的对话框
  • Nuxt.js:下一代Web开发框架的革命性力量
  • 【JavaEE初阶】死锁问题
  • uniapp 打包的 IOS打开白屏 uniapp打包页面空白
  • 在 Redis 中使用 JSON 文档:命令行界面(CLI)和 Navicat 集成
  • Win Server 2019远程桌面服务部署
  • vue3-在自定义hooks使用useRouter 报错问题
  • 深度学习框架:Pytorch与Keras的区别与使用方法
  • 1145. 北极通讯网络(Kruskal,并查集维护)
  • 【23-24 秋学期】NNDL 作业9 RNN - SRN
  • Docker + Jenkins + Nginx实现前端自动化部署
  • 文生视频的发展史及其原理解析:从Gen2、Emu Video到PixelDance、SVD、Pika 1.0
  • 【python+Excel】读取和存储测试数据完成接口自动化测试
  • WordPress插件大全-免费的WordPress插件汇总
  • STM32通讯设计
  • 外汇天眼:在QOINTEC投资需缴纳分成费才给出金?这合理么?
  • C_8练习题
  • HuggingFace学习笔记--Tokenizer的使用
  • 解决苹果手机iphone手机强制重启
  • 10分钟的时间,带你彻底搞懂JavaScript数据类型转换
  • 好用的chatgpt工具用过这个比较快
  • 系统设计概念:生产 Web 应用的架构
  • 基于docker的onlyoffice使用--运行JavaSpringExample
  • SQL server-excel数据追加到表
  • 深度学习-模型调试经验总结
  • Redis打包事务,分批提交
  • 深度学习毕设项目 深度学习 python opencv 动物识别与检测
  • leetcode 611. 有效三角形的个数(优质解法)
  • Ubuntu使用Nginx部署前端项目——记录