deeplabv3-plus-pytorch
deeplabv3-plus-pytorch copied to clipboard
CPU负载太高了,GPU每次只会有个小尖峰
如何才能改进,能继续升级优化下代码吗。
cpu是i7,9700.。显卡是泰坦V。目前cpu全程满负载,显卡每次就工作一小会。多线程开到了6线程,参数怎么设置都跑不满GPU,代码需要怎么进行优化呢。来减少CPU的占用。
还有一个问题不知道是不是代码bug还是硬件bug。多线程是比较吃内存的,本身机器的内存才16G,所以我虚拟内存就设置的很大,多线程现在开的6,开到7,它第一步batch开始时,加载一会,python就会报错
0x0000000指令引用”0x0000000”内存,该内存不能为written
我看那个时候内存是跑满的,但是虚拟内存里空间还很大,猜测可能是数据加载的太快,导致它没法往虚拟内存里转移数据,所以内存就爆了,python报错。所以有没有途径让它可以占用大内存,但是不要涨的那么快,让他有时间把数据写到虚拟内存里。有一个想法,监控剩余内存,可用很少的时候就加载停一下。
dataloader那里的数据增强, 作者是用numpy和pil实现的, 估计是在cpu上跑的, 看看能不能改成GPU处理?
不看3d看cuda
内存16G应该也不太够 读取的数据也需要放m2固态
不看3d看cuda
最新版的cuda驱动取消了cuda的专门图表, 把cuda消耗合并到"3D"里了
大量时间都是cpu在读取图片了,有什么可以缓存图片的方法吗
大量时间都是cpu在读取图片了,有什么可以缓存图片的方法吗
@bubbliiiing B导 官方的 yolov8 那个 好像可以把图片预缓存起来 能不能搞一下 用这个deeplab 也这么搞
内存16G应该也不太够 读取的数据也需要放m2固态
@bubbliiiing 现在 上了 两个 16G的内存条了 图片都在固态里面,可能固态垃圾吧。 还是全程CPU跑满 ,GPU在看戏。
dataloader那里的数据增强, 作者是用numpy和pil实现的, 估计是在cpu上跑的, 看看能不能改成GPU处理?
这里我删了,差不多提高五分之一到4分之一的时间。但还是很慢,是因为语义分割训练就是很慢,还是说因为其他原因呢
我统计了一下主要花费时间的地方,当我设置fp16混合精度训练的时候,在utils_fit.py文件中scaler.step(optimizer)这里花费的时间很长,当不用混合精度训练的时候,在total_loss += loss.item()这里花费时间很长。 想请问一下大伙,有没有遇到同样的问题。 @bubbliiiing
很多时间都在计算反向梯度0 0
我统计了一下主要花费时间的地方,当我设置fp16混合精度训练的时候,在utils_fit.py文件中scaler.step(optimizer)这里花费的时间很长,当不用混合精度训练的时候,在total_loss += loss.item()这里花费时间很长。 想请问一下大伙,有没有遇到同样的问题。 @bubbliiiing
我之前毕设的时候研究了好久怎么训练快点……发现不管咋样这玩意都会卡很久,感觉就是图太大,激活值矩阵太大,算的慢
dataloader那里的数据增强, 作者是用numpy和pil实现的, 估计是在cpu上跑的, 看看能不能改成GPU处理?
这里我删了,差不多提高五分之一到4分之一的时间。但还是很慢,是因为语义分割训练就是很慢,还是说因为其他原因呢
我受到启发,图片直接在提前预处理好,输入的图就时resize之后的,也没做数据增强,进数据增强的程序直接返回输入的image和label,一个batch,直接从46s降到15s。就是不知道不做数据增强的话,实际效果会损失多少,还有待我的测试。
dataloader那里的数据增强, 作者是用numpy和pil实现的, 估计是在cpu上跑的, 看看能不能改成GPU处理?
这里我删了,差不多提高五分之一到4分之一的时间。但还是很慢,是因为语义分割训练就是很慢,还是说因为其他原因呢
我受到启发,图片直接在提前预处理好,输入的图就时resize之后的,也没做数据增强,进数据增强的程序直接返回输入的image和label,一个batch,直接从46s降到15s。就是不知道不做数据增强的话,实际效果会损失多少,还有待我的测试。
输入域和输出域差不多应该没太大问题
我统计了一下主要花费时间的地方,当我设置fp16混合精度训练的时候,在utils_fit.py文件中scaler.step(optimizer)这里花费的时间很长,当不用混合精度训练的时候,在total_loss += loss.item()这里花费时间很长。 想请问一下大伙,有没有遇到同样的问题。 @bubbliiiing
我想起来一件事情,用更新版本的torch会好一些,甚至torch2都行。
我统计了一下主要花费时间的地方,当我设置fp16混合精度训练的时候,在utils_fit.py文件中scaler.step(optimizer)这里花费的时间很长,当不用混合精度训练的时候,在total_loss += loss.item()这里花费时间很长。 想请问一下大伙,有没有遇到同样的问题。 @bubbliiiing
我想起来一件事情,用更新版本的torch会好一些,甚至torch2都行。
那我重新把cuda和cudnn都换一下吗