您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 当工作人员数量增加并且numpy生成大型数组时,Keras使用较少的CPU

5b51 2022/1/14 8:21:33 python 字数 2744 阅读 481 来源 www.jb51.cc/python

我的代码使用了相对广泛的扩充策略,但我注意到当fit_generator(... workers = N)中的N增加时,CPU利用率不成比例.我有一个4核CPU.>当N = 1时,htop显示约105%的使用率>当N = 2时,htop显示约202%的使用率>当N = 3时,htop显示约287%的使用率>当N = 4时,htop显示

概述

我的代码使用了相对广泛的扩充策略,但我注意到当fit_generator(… workers = N)中的N增加时,cpu利用率不成比例.我有一个4核cpu.

>当N = 1时,htop显示约105%的使用率
>当N = 2时,htop显示约202%的使用率
>当N = 3时,htop显示约287%的使用率
>当N = 4时,htop显示大约342%的使用率

GPU使用率始终低于40%.

如果我减少增强策略以省略噪声添加,当N = 4时,我可以实现大约360%和更高的GPU使用率.增加噪音

x = numpy.random.normal(0,noise_sigma,x.shape)/ 255.0

其中x是640×480 BGR输入图像.这是一个慢速呼叫,每次呼叫平均大约24.3ms,但是当N = 4时cpu不应该仍然工作吗? numpy如何在生成大量随机数时阻塞其他线程?

https://github.com/numpy/numpy/blob/master/numpy/random/mtrand/mtrand.pyx#L1651

还有锁

这是什么原因?

您可以尝试使用单个RandomState生成随机数吗?

r = numpy.random.RandomState() 

.....

for ... :
    x += r.normal(0,x.shape) / 255.0

总结

以上是编程之家为你收集整理的python – 当工作人员数量增加并且numpy生成大型数组时,Keras使用较少的CPU全部内容,希望文章能够帮你解决python – 当工作人员数量增加并且numpy生成大型数组时,Keras使用较少的CPU所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶