Python的运行效率太低?几行代码快速提升!

1、GPU加速

利用多个GPU提升运行效率

#利用多个GPU加速

<code>import os
os.environ['CUDA_VISIBLE_DEVICES'] = '2,1,0'/<code>

这是存在多个GPU的电脑上可以实现的,只要放在你编写的代码中即可。

其中,

os库提供通用的,基本的操作系统交互功能,与操作系统相关的,包括常用路径操作,进程管理,环境参数等

所以这里需要import os库来进行加速

Python的运行效率太低?几行代码快速提升!

2、CPU加速

利用jit编译加速 cpu。在使用这几行代码前,需要首先定义函数

2.1、定义函数

在Python中,常用def

def 函数名(参数列表):

函数体

来定义函数,就像Python的内置函数一样,从而自己调用自己的函数实现你所需要的需求。

下面是一个小例子

<code>def example(arg1,arg2):
arg1=1
arg=2
print('你需要运行的代码') /<code>

2.2、jit加速

很多情况下,为实现需求而进行编程,都会转换成数值,然后运行计算,那么可以将你的代码利用 def定义为函数,将参数和函数替换成你自己要运行的代码,不管你的计算有多复杂,笔者曾经尝试进行非常复杂的多重数值积分,让大家感受一下:

<code>np.exp(cta_0+cta_1*np.log(x_1)+cta_2*np.log(x_2)+cta_3*np.log(x_3)+cta_4*np.log(x_4)+cta_5*np.log(x_5)+cta_6*np.log(x_6))/(1+np.exp(cta_0+cta_1*np.log(x_1)+cta_2*np.log(x_2)+cta_3*np.log(x_3)+cta_4*np.log(x_4)+cta_5*np.log(x_5)+cta_6*np.log(x_6))))*((1/(5620000*np.sqrt(2*3.1415926535898)))*np.exp(-(((x_2-36050000)/5620000)**2)/2))*((1/(0.01*np.sqrt(2*3.1415926535898)))*np.exp(-(((x_3-0.04)/0.01)**2)/2))*((1/(0.07419776239466247091*x_4*np.sqrt(2*3.1415926535898)))*np.exp(-((np.log(x_4)-19.9345857246606)**2)/(2*(0.07419776239466247091**2))))*((1/(0.2614264718127*x_5*np.sqrt(2*3.1415926535898)))*np.exp(-((np.log(x_5)+3.09177957735430)**2)/(2*(0.2614264718127**2))))*((1/(0.100526743073751*x_6*np.sqrt(2*3.1415926535898)))*np.exp(-((np.log(x_6)+3.67021574053313)**2)/(2*(0.100526743073751**2))))/<code>

一度因为运行太慢,都算了5个小时了,告诉我因为运行内存不足而算不下去,但是加上@jit后就完全不一样了,半个小时左右就算出了结果。

大家可以参照下面这个简单的例子进行加速:

<code>#jit编译
from numba import jit
@jit
def example(arg1,arg2):
result=arg1+arg2
print('你的代码')
return result
/<code>

return的就是是你所需要的结果

2.3、运行

这一步就是最后一步了,只要像下面一样输入上述函数名,赋予参数值,点击运行Run,就能得到你想要的结果

<code>arg1=5
arg2=6
result=example(arg1,arg2)/<code>
<code>原文链接:https://blog.csdn.net/weixin_45288557/java/article/details/105903858
/<code>

最后

如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的Python教程。获取方式,私信小编 “ 资料 ”,即可免费获取哦!


分享到:


相關文章: