1. 程式人生 > >tensorflow提示未編譯使用SSE4.1,SSE4.2等問題的解決方法

tensorflow提示未編譯使用SSE4.1,SSE4.2等問題的解決方法

先概述下問題:之前是在終端中使用 pip install tensorflow==1.1.0 命令來完成安裝的,在eclipse中能夠執行,但是卻會提示報錯,在控制檯輸出一串未使用SSE4.1,SSE4,2等字樣的資訊,本人有強迫症無法容忍專案中各種報錯提示的存在,然後花了半天功夫解決了這個問題,步驟如下:

   這個問題的出現主要是和tensorflow的安裝方式有關係,使用pip安裝就會出現對程式碼編譯優化的問題,使得你電腦有SSE4.1等命令,卻無法呼叫來加速訓練,所以最好是安裝時候多費點事,能夠解決這個報錯提示的問題,同時也能在以後的專案中發揮本機CPU的效能進行加速訓練

第一步:解除安裝已經安裝的tensorflow   命令: sudo pip uninstall tensorflow  (一定要先解除安裝,不然之後所有工作都是白費)

第二步:建立資料夾並下載原始碼          命令: git clone --recurse-submodules https://github.com/tensorflow/tensorflow

第三步: 安裝bazel工具(提示最後兩條命令,別忘記輸入sudo,否則會出錯)  命令如下:

         echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list

         curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -


         sudo apt-get update && sudo apt-get install bazel

         sudo apt-get upgrade bazel

第四步:安裝tensorflow所需的各種包  命令:sudo apt-get install python-numpy python-dev python-pip python-wheel

第五步:配置tensorflow   命令如下:

        cd tensorflow/    (進入第二步中建立的tensorflow資料夾)

       ./configure 

此時會彈出一些配置需要你填寫,首先彈出的是選擇python的路徑和版本,在提示資訊中會給出defult資訊,我們就完全填寫defult中的資訊就行(避免出錯和麻煩)

完成之後會讓你輸入Y/N選擇tensorflow是否支援google cloud,Hadoop等,建議Hadoop選Y其他選擇N即可(如果都選Y又需要額外下載很多東西)

第六步:生成pip安裝包   命令:bazel build -c opt --copt=-msse3 --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx --copt=-mavx2 --copt=-mfma //tensorflow/tools/pip_package:build_pip_package  (時間較長,請耐心等待) (其中msse3,msse4.1 mavx等表示cpu支援的指令集,不同機器會有差異,如果你電腦的CPU不支援AVX指令,但在此處卻輸出了--copt=-mavx 最後還是會報錯提示:你的機器不支援此指令,所以在寫這條命令時候,建議大家下載CPU-Z看看本機CPU支援的指令,然後對應寫此指令)

第七步: 安裝  命令如下:

      bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

      sudo pip install /tmp/tensorflow_pkg/tensorflow-1.1.0rc1-cp27-cp27mu-linux_x86_64.whl  (最後是生成的軟體包名,會有不同,根據自己生成的包名填寫)

補充:如何檢視生成的包名    在/目錄下進入tmp再進入tensorflow_pkg檔案   裡面只有一個.whl的檔案,即可檢視包名,用於替換上述第二條命令中的最後一部分即可

完成上述命令後 等待一會下載即可完成