<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一行代碼加速sklearn運(yùn)算上千倍

          共 1677字,需瀏覽 4分鐘

           ·

          2022-06-27 19:37

          ?

          本文示例代碼已上傳至我的Github倉庫https://github.com/CNFeffery/DataScienceStudyNotes

          ?

          1 簡介

          大家好我是費(fèi)老師,scikit-learn作為經(jīng)典的機(jī)器學(xué)習(xí)框架,從誕生至今已發(fā)展了十余年,但其運(yùn)算速度一直廣受用戶的詬病。熟悉scikit-learn的朋友應(yīng)該清楚,scikit-learn中自帶的一些基于joblib等庫的運(yùn)算加速功能效果有限,并不能很充分地利用算力。

          而今天我要給大家介紹的知識(shí),可以幫助我們在不改變原有代碼的基礎(chǔ)上,獲得數(shù)十倍甚至上千倍的scikit-learn運(yùn)算效率提升,let's go!

          2 利用sklearnex加速scikit-learn

          為了達(dá)到加速運(yùn)算的效果,我們只需要額外安裝sklearnex這個(gè)拓展庫,就可以幫助我們在擁有intel處理器的設(shè)備上,獲得大幅度的運(yùn)算效率提升。

          抱著謹(jǐn)慎嘗鮮的態(tài)度,我們可以在單獨(dú)的conda虛擬環(huán)境中做實(shí)驗(yàn),全部命令如下,我們順便安裝jupyterlab作為IDE:

          conda create -n scikit-learn-intelex-demo python=3.8 -c https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main -y
          conda activate scikit-learn-intelex-demo
          pip install scikit-learn scikit-learn-intelex jupyterlab -i https://pypi.douban.com/simple/

          完成實(shí)驗(yàn)環(huán)境的準(zhǔn)備后,我們在jupyter lab中編寫測試用代碼來看看加速效果如何,使用方式很簡單,我們只需要在代碼中導(dǎo)入scikit-learn相關(guān)功能模塊之前,運(yùn)行下列代碼即可:

          from sklearnex import patch_sklearn, unpatch_sklearn
          patch_sklearn()

          成功開啟加速模式后會(huì)打印以下信息:

          其他要做的僅僅是將你原本的scikit-learn代碼在后面繼續(xù)執(zhí)行即可,我在自己平時(shí)寫作以及開發(fā)開源項(xiàng)目的老款拯救者筆記本上簡單測試了一下。

          以線性回歸為例,在百萬級別樣本量以及上百個(gè)特征的示例數(shù)據(jù)集上,開啟加速后僅耗時(shí)0.21秒就完成對訓(xùn)練集的訓(xùn)練,而使用unpatch_sklearn()強(qiáng)制關(guān)閉加速模式后(注意scikit-learn相關(guān)模塊需要重新導(dǎo)入),訓(xùn)練耗時(shí)隨即上升到11.28秒,意味著通過sklearnex我們獲得了50多倍的運(yùn)算速度提升!

          而按照官方的說法,越強(qiáng)勁的CPU可以獲得的性能提升比例也會(huì)更高,下圖是官方在Intel Xeon Platinum 8275CL處理器下測試了一系列算法后得出的性能提升結(jié)果,不僅可以提升訓(xùn)練速度,還可以提升模型推理預(yù)測速度,在某些場景下甚至達(dá)到數(shù)千倍的性能提升:

          官方也提供了一些ipynb示例(https://github.com/intel/scikit-learn-intelex/tree/master/examples/notebooks),展示了包含K-meansDBSCAN隨機(jī)森林邏輯回歸嶺回歸等多種常用算法示例,感興趣的讀者朋友們可以自行下載學(xué)習(xí)。


          以上就是本文的全部內(nèi)容,歡迎在評論區(qū)與我進(jìn)行討論~


          END


          推薦閱讀


          牛逼!Python常用數(shù)據(jù)類型的基本操作(長文系列第①篇)

          牛逼!Python的判斷、循環(huán)和各種表達(dá)式(長文系列第②篇)

          牛逼!Python函數(shù)和文件操作(長文系列第③篇)

          牛逼!Python錯(cuò)誤、異常和模塊(長文系列第④篇)


          吳恩達(dá)deeplearining.ai的經(jīng)典總結(jié)資料


          Ps:從小程序直接獲取下載

          瀏覽 58
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲精品成a在线 | 青娱乐青青草视频 | 色婷婷激情AV在线 | 爱福利一区 | 色婷婷视频一区二区 |