中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

TensorFlow源代碼編譯構建安裝包的示例分析

發布時間:2021-12-04 11:33:04 來源:億速云 閱讀:247 作者:小新 欄目:大數據

這篇文章給大家分享的是有關TensorFlow源代碼編譯構建安裝包的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

        最近公司給我們分配了2臺虛擬機服務器用于強化學習訓練,我們在虛擬環境中安裝好了TensorFlow環境后,在import tensorflow時發現報了下面的錯誤:
TensorFlow源代碼編譯構建安裝包的示例分析
        于是我去Google搜索了下出現這個錯誤的原因,發現是因為我們服務器的CPU不支持AVX指令集導致的,而使用pip安裝的TensorFlow需要依賴AVX指令集,為了確認我們的CPU是否真的不支持AVX指令集,我使用cat /proc/cpuinfo 命令查看了下目前CPU指令集支持情況,發現我們的CPU果然不支持AVX指令集。
TensorFlow源代碼編譯構建安裝包的示例分析
        又不支持又想用咋辦,后來經過網上查詢了一下,我們可以自己使用TensorFlow的源代碼來編譯和構建一個TensorFlow的版本,這樣的話就可以在不支持AVX指令集的機器上使用TensorFlow了。于是我按照官網https://www.tensorflow.org/install/source給出的步驟來嘗試從源碼自己編譯和構建TensorFlow。
        在構建TensorFlow之前,我們要先做兩件事:
      1. 下載TensorFlow的源碼
      2. 下載和安裝Bazel構建工具

        在下載TensorFlow源碼如果網速比較好的話,可以直接使用下面的命令從GitHub倉庫中克隆TensorFlow代碼庫的源碼:

   
   
   git clone https://github.com/tensorflow/tensorflow.gitcd tensorflow
        如果網速堪憂的話,可以直接先下載zip版本,然后再傳到服務器上,我使用的是后者。  
        注意:這里的代碼庫默認的是master開發分支。

        下載和安裝Bazel構建工具這里我要特別說一下,一般來講,Bazel的安裝方式有2種,一種是使用Bazelisk來安裝,另外一種是手動安裝,我使用的是后者。在官網中會告訴你,你可以安裝在GitHub中可以是 tensorflow/configure.py 中指定的介于 _TF_MIN_BAZEL_VERSION 和 _TF_MAX_BAZEL_VERSION 之間的任意版本,但是,  這里是一個坑。因為在這里他說可以安裝3.10~3.99種的任意一個版本,于是乎我安裝了一個3.70的版本,等到真正編譯的時候,他會告訴你,這個版本不匹配,需要你安裝3.10的版本,于是只能卸載重新安裝。
        接下來我們需要按照bazel,首先要安裝一些依賴:

   
   
   apt install curl gnupg
    curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg
    mv bazel.gpg /etc/apt/trusted.gpg.d/
    echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
        接下來我們可以使用apt update && sudo apt install bazel-3.1.0命令直接安裝就好。
        到目前為止我們已經安裝好了bazel編譯工具,也下載了TensorFlow的源碼,那么接下來就要開始準備編譯和構建TensorFlow了。
        在這之前我們還需要去安裝一些相應的依賴,使用如下命令即可:
   
   
   pip install  six numpy wheel setuptools mock 'future>=0.17.1'
    pip install  keras_applications --no-deps
    pip install  keras_preprocessing --no-deps
 
        然后我們使用gcc --version查看下我們的gcc版本,我的是18.04自帶的7.5.0,可用。

        接下來就是真正的編譯環節了。首先我們進入到從GitHub中下載的TensorFlow源代碼,并執行
   
   
   ./configure
 
        這個時候會讓你去做一些配置相關的信息:
   
   
   Please specify the location of python. [Default is /root/miniconda3/envs/ray/bin/python3]:
 
        這一句是讓你輸入Python所在的位置,如果沒錯的話直接回車,如果想修改的話就輸入你的Python所在的目錄;
   
   
   Found possible Python library paths:
    /root/miniconda3/envs/ray/lib/python3.8/site-packages
    Please input the desired Python library path to use.  Default is [/root/miniconda3/envs/ray/lib/python3.8/site-packages]
 
        這一步讓你去輸入Python library所在的位置,和上面一樣,我這里直接回車。

   
   
   Do you wish to build TensorFlow with ROCm support? [y/N]: N
        這一步是問你是不是要build一個支持ROCm的TensorFlow版本,在這里我選擇N。  

Do you wish to build TensorFlow with CUDA support? [y/N]: N
        這一步是問你是不是要build一個支持CUDA的TensorFlow版本,因為我這個是要在分布式集群的CPU版本用的,這個服務器里沒用CUDA,所以我選擇N。  

Do you wish to download a fresh release of clang? (Experimental) [y/N]: N
          這一步是問你是不是希望狹隘一個clang是release版本,這里我一開始選擇的是Y,由于我網速不好,下載報錯,然后就選擇了N;
Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native -Wno-sign-compare]:
        這一步是讓你輸入一個編譯時候的優化器,在這里我直接用默認的,就直接回車了;

   
   
   Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]:  N
        這一步是問你是不是需要支持Android,我這邊不需要,所以直接N,否則的話會讓你選擇你Android SDK的版本之類的;  

        當這些都配置完成之后,就會彈出來一個你的配置信息。
TensorFlow源代碼編譯構建安裝包的示例分析
        接下來就要真正的開始去編譯你的TensorFlow源碼了,由于我使用的是不帶CUDA的版本,所以我直接使用如下命令即可:
   
   
   bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
        編譯好會看到下面的信息:(由于我自己這塊沒有截圖,用了個網圖,我用老的CPU花了7500多秒)  
TensorFlow源代碼編譯構建安裝包的示例分析
        編譯好之后,我們就可以在TensorFlow源代碼目錄輸入以下命令,來構建最終的pip安裝包:
   
   
   ./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
        在這里,/tmp/tensorflow_pkg是我自己定義的最終安裝包輸出的位置,結束后,我們可以cd到 /tmp/tensorflow_pkg目錄中,查看里面的內容:  
TensorFlow源代碼編譯構建安裝包的示例分析
        可以看到,我們最終的pip安裝版本就已經完成,接下來我們就可以在命令行里輸入下面的命令進行安裝了:
   
   
   pip install tensorflow-2.5.0-cp38-cp38-linux_x86_64.whl
TensorFlow源代碼編譯構建安裝包的示例分析  
        安裝完成后,我們可以試著在Python交互環境中導入一下TensorFlow,看看是否有報錯:
TensorFlow源代碼編譯構建安裝包的示例分析
        我們發現,可以正常導入和使用,至此,整個TensorFlow源碼的編譯、構建以及安裝環境完成。

感謝各位的閱讀!關于“TensorFlow源代碼編譯構建安裝包的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

温州市| 汉川市| 神池县| 四会市| 宁强县| 建瓯市| 时尚| 宝兴县| 迁西县| 广宁县| 房山区| 韶关市| 高陵县| 文安县| 襄垣县| 高尔夫| 顺昌县| 康保县| 临夏市| 达日县| 曲松县| 龙口市| 嘉兴市| 临猗县| 论坛| 梓潼县| 内乡县| 资溪县| 霸州市| 昭觉县| 巨野县| 霍林郭勒市| 龙陵县| 睢宁县| 兰州市| 隆昌县| 阿拉善右旗| 佛坪县| 朔州市| 鄢陵县| 西安市|