I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this Ten...

問題: 安裝TensorFlow(CPU版本),使用pip install tensorflow安裝,安裝一切順利,可是在跑一個簡單的程序時,遇到以下狀況: 大概意思是:你的CPU支持AVX擴展,可是你安裝的TensorFlow版本沒法編譯使用。 緣由: 除了一般的算術和邏輯,現代CPU提供了許多低級指令,稱爲擴展,例如, SSE2,SSE4,AVX等來自維基百科: 高級矢量擴展(AVX)是英特爾在2008年3月提出的英特爾和AMD微處理器的x86指令集體系結構的擴展,英特爾首先經過Sandy Bridge處理器在2011年第一季度推出,隨後由AMD推出Bulldozer處理器在2011年第三季度.AVX提供了新功能,新指令和新編碼方案。 特別是,AVX引入了融合乘法累加(FMA)操做,加速了線性代數計算,即點積,矩陣乘法,卷積等。幾乎全部機器學習訓練都涉及大量這些操做,所以將會支持AVX和FMA的CPU(最高達300%)更快。該警告指出您的CPU確實支持AVX(hooray!)。 在此強調一下: 這隻限於CPU。若是你有一個GPU,你不該該關心AVX的支持,由於大多數昂貴的操做將被分派到一個GPU設備上(除非明確地設置)。在這種狀況下,您能夠簡單地忽略此警告。 那爲何會出現這種警告呢? 因爲tensorflow默認分佈是在沒有CPU擴展的狀況下構建的,例如SSE4.1,SSE4.2,AVX,AVX2,FMA等。默認版本(來自pip install tensorflow的版本)旨在與儘量多的CPU兼容。另外一個觀點是,即便使用這些擴展名,CPU的速度也要比GPU慢不少,而且指望在GPU上執行中型和大型機器學習培訓。 解決方法: 若是安裝的是GPU版本 若是你有一個GPU,你不該該關心AVX的支持,由於大多數昂貴的操做將被分派到一個GPU設備上(除非明確地設置)。在這種狀況下,您能夠簡單地忽略此警告: import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 若是安裝的是CPU版本(pip install tensorflow) 1.在代碼中加入以下代碼,忽略警告: import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 2.編譯TensorFlow源碼 若是您沒有GPU而且但願儘量多地利用CPU,那麼若是您的CPU支持AVX,AVX2和FMA,則應該從針對CPU優化的源構建tensorflow。在這個問題中已經討論過這個問題,也是這個GitHub問題。 Tensorflow使用稱爲bazel的ad-hoc構建系統,構建它並非那麼簡單,但確定是可行的。在此以後,不只警告消失,tensorflow性能也應該改善。 參考: https://stackoverflow.com/questions/47068709/your-cpu-supports-instructions-that-this-tensorflow-binary-was-not-compiled-to-u?answertab=votes#tab-top --------------------- 做者:濤哥帶你學編程 來源:CSDN 原文:https://blog.csdn.net/hq86937375/article/details/79696023 版權聲明:本文爲博主原創文章,轉載請附上博文連接!
相關文章
相關標籤/搜索