亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何通過numba模塊給Python代碼提速

發布時間:2022-01-13 12:58:31 來源:億速云 閱讀:134 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關如何通過numba模塊給Python代碼提速,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

簡介:numba是Anaconda公司開發的針對Python的開源JIT編譯器,用于提供Python版CPU和GPU編程,速度比原生Python快數十倍。numba是第三方庫,可以在運行時將Python代碼編譯為本地機器指令,而不會強制大幅度的改變普通的Python代碼,使得在部分場景下執行Python的效率得到飛速的提升。

工作原理對比:

Python文件執行過程

1、.py文件通過解釋器轉化為虛擬機可以執行的字節碼(.pyc);字節碼在虛擬機上執行,得到結果。

2、字節碼是一種只能運行在虛擬機上的文件,默認后綴.pyc,Python生成.pyc之后一般放在內存中繼續使用,并不是每次都將.pyc文件保存到磁盤上。

而在JIT(Just-In-Time)技術中,JIT編譯器將Python源代碼.py直接編譯成機器可以執行的機器語言(機器碼),就可以直接在CPU等硬件上運行。這樣,JIT就跳過了原來的虛擬機,執行速度幾乎與用C語言編程速度無差別。

numba是Anaconda公司開發的針對Python的開源JIT編譯器。谷歌開源的jax庫也是屬于jit編譯器之一,該模塊則主要應用于科學計算和機器學習方向。

安裝:如網絡限制,請繞道國內鏡像豆瓣源,清華源等。pip安裝第三方庫全攻略:普通安裝、安裝whl后綴文件、使用國內鏡像安裝

pip install numba

使用方法:

from numba import jit
對函數進行裝飾@jit(nopython=True)

注意事項:numba只符合部分場景,特殊場景無法使用。例如機器學習訓練數據時,不能簡單的進行裝飾使用,否則會拋出異常。

如何通過numba模塊給Python代碼提速

源碼:

from numba import jit
import datetime


def calc_sum1(loop):
    n = 0
    for i in range(loop):
        for j in range(loop):
            n += j
    return n


@jit(nopython=True)
def calc_sum2(loop):
    n = 0
    for i in range(loop):
        for j in range(loop):
            n += j
    return n


@jit(nopython=True)
def calc_sum2(loop):
    n = 0
    for i in range(loop):
        for j in range(loop):
            n += j
    return n


if __name__ == '__main__':
    print(datetime.datetime.now())
    r1 = calc_sum1(10000)
    print(r1)
    print(datetime.datetime.now())

    print("*" * 30)
    print(datetime.datetime.now())
    r2 = calc_sum2(10000)
    print(r2)
    print(datetime.datetime.now())

結果對比:原始代碼執行需要花費5秒左右,而使用numba裝飾后僅需300毫秒左右,提升10倍有余。如果loop設置的參數更長,numba裝飾后執行的結果更佳。

如何通過numba模塊給Python代碼提速

關于“如何通過numba模塊給Python代碼提速”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

廉江市| 孟州市| 上蔡县| 永修县| 且末县| 锦州市| 贵德县| 鲁甸县| 伊春市| 新化县| 龙胜| 桦川县| 海盐县| 历史| 绥化市| 仁寿县| 庄浪县| 卓资县| 句容市| 鹤山市| 萨嘎县| 甘南县| 明光市| 福清市| 徐闻县| 开封市| 龙海市| 海伦市| 枣庄市| 饶平县| 仪陇县| 广安市| 吉木萨尔县| 长沙县| 吉安县| 赤峰市| 乐都县| 栾城县| 化隆| 丽江市| 育儿|