开发者社区 > ModelScope模型即服务 > 语音 > 正文

模型训练速度太慢

我生成了300小时的DNS数据集,在两张V100 24GB的卡上训练模型:FRCRN语音降噪-单麦-16k,速度很慢,一个epoch要跑10个小时左右,请问这是正常的吗?

展开
收起
jkt4nncyd62dm 2022-12-24 20:22:18 1516 1
4 条回答
写回答
取消 提交回答
  • 您这种情况不正常,目前训练流程默认使用单卡,通常V100单卡跑一个epoch约40分钟。您训练的时候可以观察一下cpu和gpu的占用情况。

    2023-01-09 19:42:20
    赞同 展开评论 打赏
  • 这个速度是否正常取决于你的训练数据的大小和复杂度,以及你的模型的大小和复杂度。 如果你的训练数据很大,而且模型也很复杂,那么一个epoch的训练时间可能会更长。 如果你的训练数据很小,而且模型也很简单,那么一个epoch的训练时间可能会更短。

    你可以尝试优化你的训练过程来加快训练速度,例如:

    使用更快的计算设备,比如更高性能的GPU。 使用更高效的算法,比如更快的优化器或更快的数据读取方式。 减小模型的大小或复杂度,比如减少模型中的层数或参数数量。

    2022-12-26 09:45:49
    赞同 展开评论 打赏
  • 在调试过程,

    命令:top 实时查看你的CPU的进程利用率,这个参数对应你的num_workers的设置;

    命令: watch -n 0.5 nvidia-smi 每0.5秒刷新并显示显卡设置。

    实时查看你的GPU的使用情况,这是GPU的设置相关。这两个配合好。包括batch_size的设置。

    2022-12-26 07:57:39
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,看一下这个:问题原因 所以到底为什么导致了这个原因呢? 偶然为了减小最后的tensorboard log文件,把一些用不到的tensorboard的写入比如直方图给删掉了,发现速度瞬间提上来了,然后再减小训练时的输出间隔,速度也有提升。立刻明白了,是因为训练的主要时间都花在了写日志上,文件IO耗时特别多,尤其是我设置的写入间隔还很小,所以GPU计算一瞬间,然后写很久的记录,计算一瞬间,再写很久的记录,最终导致速度特别慢。这也正是为了速度和我笔记本的GTX1050一样,因为大家比的都是写文件的速度。 最后的效果还是很好的,不愧是Tesla V100。ResNet50从最初跑一个epoch12分钟提升到四十多秒,如果删掉日志写入还能更快。而VGG16也只要二十多秒,训练100个epoch分分钟的事情。 另外这么快的速度也不全是显卡,跟前面提到的pin_memory也有关系,以及使用了PyTorch的半精度来提高速度,精度也没有受到很大影响。 这个问题解决后我也明白为啥之前的AlexNet跑一个epoch还要三四分钟,五六分钟,时间都花在写日志上了。以及之前跑的一个比较大的模型,也有了提速的方法,之前需要50分钟,现在估计五六分钟。可以很方便的做各种对比实验与测试,效率提高的不是一点点。

    2022-12-25 08:00:51
    赞同 展开评论 打赏

包括语音识别、语音合成、语音唤醒、声学设计及信号处理、声纹识别、音频事件检测等多个领域

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载