码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • pytorch训练加速技巧


    搭建的模型训练时间过长,除了方法上的改进,在pytorch基本操作上的改进有以下实践与总结:

    1. 参考下面链接的方法

    让PyTorch训练速度更快,你需要掌握这17种方法
    pytorch矩阵取数据–避免for循环
    pytorch torch.where用法

    2. 除了上述方法,以下为个人实践中总结的技巧:
    • 空间换时间:能预处理的数据,尽量预处理之后保存,训练过程中直接使用预处理的数据。
    • 矩阵放在gpu上:对于矩阵运算,尽可能放到gpu上,无论该矩阵是否需要梯度更新。同时能用矩阵表示变换尽可能用矩阵变换表示;
    • 避免使用append操作:对于列表list,使用list.append(**)也是较为耗时的,若已知列表长度,尽可能用numpy数组替换列表。
    • 减少使用concat操作:解释同上。
    • 使用numpy数组存储:数据较大时,使用numpy数组或者张量形式存储,这样无论是对其继续操作还是作为函数返回值都比使用列表或其他形式要快。
    • 减少for循环:对于numpy数组或tensor类型,使用torch.where() 或numpy.where()或torch.gather()来查找数组或张量中满足条件的值,要比自己写for循环查找快很多。尤其是该张量的reqiures_grad=True时,使用for循环对该张量操作会使得梯度反向传播时非常非常慢。
    • 避免数据在cpu与gpu上来回切换:进行同一操作的数据应放在相同的device上(否则会报错),数组、张量尽可能放在gpu上。
    • 循环操作:若实在无法避免for循环甚至多重循环,分两种情况处理:(1)若该张量的reqiures_grad=True,则将其放在gpu上计算for循环(若放在cpu上会使得梯度反向传播异常慢);若该张量不需要计算梯度reqiures_grad=False,则放在cpu上处理循环操作。
    • 不涉及梯度图的数据使用tensor.detach()。
  • 相关阅读:
    软文发稿平台那么多,为什么选择媒介盒子
    Linux安装omnet++
    新书速览|解密AI绘画与修图: Stable Diffusion+Photoshop
    记录:CentOS安装配置MySQL8
    如何获得jd商品分类API数据
    数据分析 | Pandas 200道练习题 进阶篇(1)
    关于java语言当中的this关键字
    力扣76. 最小覆盖子串(滑动窗口)
    计算机视觉项目-实时目标追踪
    go 程序被意外kill后出现僵尸进程解决方案
  • 原文地址:https://blog.csdn.net/flyingluohaipeng/article/details/128104458
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号