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

叙述一个网站开发流程注册网站流程

叙述一个网站开发流程,注册网站流程,设计论坛最好的网站,十大电子商务网站MPS加速修改总结 先说设备:MacBook Pro M4 24GB 事情的起因是我在进行深度学习的时候想尝试用苹果自带的MPS进行训练加速,修改设备后准备开始训练,但是出现如下报错: UserWarning: resource_tracker: There appear to be 1 leak…

MPS加速修改总结

先说设备:MacBook Pro M4 24GB
事情的起因是我在进行深度学习的时候想尝试用苹果自带的MPS进行训练加速,修改设备后准备开始训练,但是出现如下报错:

UserWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdownwarnings.warn('resource_tracker: There appear to be %d '

我尝试在stackoverflow上面寻找答案,但是只有人提问,没有人回答,于是我进入PyTorch的社区进行查找,终于有人也提了这个问题。
修改后没有出现内存泄露的问题,但是有新的问题:

TypeError: Cannot convert a MPS Tensor to float64 dtype as the MPS framework doesn't support float64. Please use float32 instead.

幸好有人直接给出了GitHub的issue链接,根据官方的建议修改后成功运行了,接下来分享我的修改全流程,帮助大家避坑。

1. 设备检测与切换

  • train.py中添加了对MPS设备的检测和使用:

    if torch.backends.mps.is_available() and torch.backends.mps.is_built():device = torch.device("mps")
    
  • 添加命令行参数支持直接指定设备类型:--device mps

2. 数据类型修复

  • 创建DoubleToFloatTransform转换器确保所有张量为float32类型,因为MPS不支持float64

  • 在数据转换pipeline中添加此转换器:

    transforms.Compose([# 其他转换...transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),DoubleToFloatTransform()  # 确保张量为float32类型
    ])
    
  • 将代码中所有.double()替换为.float(),避免精度转换错误

3. 内存管理优化

  • 使用multiprocessing.set_start_method('spawn')解决MPS设备上的bus error问题

  • 定期调用torch.mps.empty_cache()释放MPS设备上的缓存

  • 减少DataLoader的worker数量,避免内存压力:

    if device.type == 'mps' and args.num_workers > 2:args.num_workers = 2
    

4. 模型初始化修复

  • 修复ResNet和EfficientNet模型中的权重类型问题,使用正确的权重枚举类型:

    weights_enum = {'resnet18': models.ResNet18_Weights.DEFAULT,# 其他模型...
    }
    

5. 工作进程优化

  • 创建专用的worker_init函数处理MPS设备上的数据加载

  • 在工作进程中强制使用float32数据类型:

    torch.set_default_dtype(torch.float32)
    

6. 性能测量适配

  • 修改measure_inference_time函数,为MPS设备添加专门的同步和计时方法:

    if device.type == 'mps':torch.mps.synchronize()
    

总结

如果这个教程对你有帮助不妨点赞、收藏、关注,你的支持就是我更新的最大动力,后续我还会更新更多有用的内容!

如果还有问题可以私信我,信得过我的话,免费帮你看看代码,但是本人实力有限,不一定能解决,但是尽量帮助,大家一起进步!

http://www.dtcms.com/wzjs/160949.html

相关文章:

  • ps模板网站杭州百度快照优化排名
  • 招标网站官网高质量内容的重要性
  • 网站空间如何买seo搜外
  • wordpress修改页面太原seo培训
  • 建网站那家好查权重工具
  • 接广告的网站怎么做网站点击量统计
  • 雅虎提交网站入口如何在网上推广自己的产品
  • 网站建设顾问网络营销的方式都有哪些
  • 视频素材网站推荐自媒体人15种赚钱方法
  • 重庆网站建设百度推广网站关键词搜索排名
  • 郑州网约车资格证福州百度网站排名优化
  • 智能建站系统 网站建设的首选雅思培训班价格一般多少
  • 岳阳做网站费用seo属于运营还是技术
  • 做网站号码网站推广教程
  • 网站上那些兼职网页怎么做seo薪资
  • 厦门亚龙网站建设如何开通自己的网站
  • 企业网站推广的方式成都网站建设方案托管
  • 织梦电子行业网站模板杭州seo联盟
  • 深圳网站空间网络推广有哪几种方法
  • 做电商的网站济南全网推广
  • 怎样给公司做一个网站做推广东莞最新消息今天
  • 设计网站大全免费下载搜索推广
  • linux空间做网站济南网站建设
  • 免费b站推广网站入口2023孩子出牙会发烧吗自助建站免费搭建个人网站
  • 屯济宁做网站公司名风seo软件
  • 广州做网站平台厦门seo培训
  • 南京做网站外包企业培训权威机构
  • 南宁做网站在哪了百度首页纯净版
  • led灯具网站模板网络营销首先要
  • 甘肃网站备案免费开源网站