it-swarm.dev

CPU'nuz bu TensorFlow binaryinin kullanımı için derlenmediği talimatları desteklemektedir: AVX AVX2

TensorFlow'da yeniyim. Son zamanlarda onu yükledim (Windows CPU sürümü) ve aşağıdaki mesajı aldım:

Başarıyla yüklendi tensorflow-1.4.0 tensorflow-tensorboard-0.4.0rc2

Sonra kaçmaya çalıştığımda

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
sess.run(hello)
'Hello, TensorFlow!'
a = tf.constant(10)
b = tf.constant(32)
sess.run(a + b)
42
sess.close()

(/ https://github.com/tensorflow/tensorflow aracılığıyla bulduğum)

Aşağıdaki mesajı aldım:

2017-11-02 01: 56: 21.698935: IC:\tf_jenkins\home\çalışma alanı\rel-win\M\windows\PY\36\tensorflow\core\platform\cpu_feature_guard.cc: 137] CPU’nuz bu talimatları destekliyor TensorFlow ikili kullanımı derlenmedi: AVX AVX2

Ama koştuğumda

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

olması gerektiği gibi çalıştı ve çıktıda Hello, TensorFlow! çıktı verdi, bu da kurulumun gerçekten başarılı olduğunu ancak yanlış bir şey olduğunu gösteriyor.

Sorunun ne olduğunu ve nasıl düzeltileceğini biliyor musunuz? Teşekkürler.

459
csg

Bu uyarı ne hakkında?

Modern CPU'lar, uzantılar olarak bilinen olağan aritmetik ve mantığın yanı sıra, ör. SSE2, SSE4, AVX, vb. Vikipedi :

Gelişmiş Vektör Uzantıları (AVX) x86 komutunun uzantılarıdır Mart 2008'de Intel tarafından önerilen ve ilk olarak Intel ve AMD mikroişlemcilerinin mimarisini belirledi ve ilk olarak 2011 yılının ilk çeyreğinde Sandy Bridge işlemci nakliyesinde Intel tarafından desteklendi ve daha sonra AMD tarafından 2011 yılının ilk çeyreğinde Bulldozer işlemci nakliyesinde desteklendi. yeni bir kodlama şeması.

Özellikle, AVX, nokta çarpımı, matris çarpımı, evrişim vb. Gibi lineer cebir hesaplamasını hızlandıran kaynaşmış çarpma-biriktirme (FMA) işlemlerini başlatır. Hemen hemen her makine-öğrenme eğitimi çok şey gerektirir Bu işlemlerden, AVX ve FMA'yı destekleyen bir CPU'da (% 300'e kadar) daha hızlı olacaktır. Uyarı, CPU'nuzun AVX'i (yaşasın!) Desteklediğini belirtir.

Burada vurgulamak istiyorum: hepsi Sadece CPU ile ilgili.

O zaman neden kullanılmıyor?

Çünkü tensorflow varsayılan dağıtım inşa edilmiş CPU uzantıları olmadan , SSE4.1, SSE4.2, AVX, AVX2, FMA, vs. gibi. Varsayılan kurulumlar (pip install tensorflow içinden olanlar] mümkün olduğunca çok CPU ile uyumlu olması. Başka bir argüman bu uzantılarla bile CPU'nun GPU'dan çok daha yavaş olduğu ve orta ve büyük ölçekli bir makine öğrenimi eğitiminin bir GPU'da yapılması bekleniyor.

Ne yapmalısın?

Bir GPU'nuz varsa , AVX desteğini umursamamanız gerekir, çünkü çoğu pahalı işlem bir GPU aygıtına gönderilir (açıkça belirtilmediği sürece ). Bu durumda, bu uyarıyı yalnızca

# Just disables the warning, doesn't enable AVX/FMA
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

... veya Unix kullanıyorsanız export TF_CPP_MIN_LOG_LEVEL=2 ayarını yaparak. Tensorflow yine de iyi çalışıyor, ama bu can sıkıcı uyarıları görmeyeceksiniz.


Bir GPU'nuz yoksa ve CPU’yu mümkün olduğunca kullanmak istiyorsanız, adresinden tensorflow yapmalısınız. CPU'nuzu destekliyorsa, your CPU AVX, AVX2 ve FMA etkinleştirilmiş olarak optimize edilmiş kaynak. bu sor ve ayrıca bu GitHub sorun 'da tartışılmıştır. Tensorflow bazel adında geçici bir derleme sistemi kullanıyor ve bu kadar önemsiz değil ama kesinlikle yapılabilir. Bundan sonra, sadece uyarı kaybolmakla kalmaz, tensorflow performansı da iyileşmelidir.

679
Maxim

Bu komutu kullanarak CPU ve İşletim Sisteminiz için tensorflow ikilisini güncelleyin

pip install --ignore-installed --upgrade "Download URL"

WHL dosyasının indirme URL'si burada bulunabilir

https://github.com/lakshayg/tensorflow-build

121
HimalayanCoder

GPU ile CPU optimizasyonu

Bir GPU'nuz olsa bile, TensorFlow'u kaynaktan yükleyerek ve eğitim ve çıkarım için kullandığınızda elde edebileceğiniz performans kazanımları var. Bunun nedeni, bazı TF işlemlerinin yalnızca CPU uygulaması olması ve GPU’nuzda çalışamamasıdır.

Ayrıca, CPU'nuzu iyi kullanan bazı performans geliştirme ipuçları da vardır. TensorFlow'in performans rehberi aşağıdakileri önermektedir:

CPU'ya giriş boru hattı işlemleri koymak performansı önemli ölçüde artırabilir. CPU'nun giriş boru hattı için kullanılması, GPU'yu eğitime odaklanmak için serbest bırakır.

En iyi performans için, sırayla çalışmak için CPU ve GPU'nuzu kullanmak için kodunuzu yazmalı ve varsa bunların hepsini GPU’ya atmamalısınız. TensorFlow ikili dosyalarınızın işlemciniz için optimize edilmiş olması, çalışma süresinden saatlerce ödeyebilir ve bir kez yapmanız gerekebilir.

20
Wesam

Windows için AVX2 ile derlenmiş TensorFlow için resmi Intel MKL optimizasyonu tekerleklerini kontrol edebilirsiniz. Bu çözüm benim çıkarımı hızlandırıyor ~ x3.

conda install tensorflow-mkl
6
Flayn

Windows için (f040225 sahibine teşekkürler) buraya gidin: https://github.com/fo40225/tensorflow-windows-wheel "tf + python + kombinasyonuna göre ortamınız için url'yi getirin cpu_instruction_extension". Sonra yüklemek için bu cmd'yi kullanın:

pip install --ignore-installed --upgrade "URL"

"Dosya bir Zip dosyası değil" hatasıyla karşılaşırsanız, .whl dosyasını yerel bilgisayarınıza indirin ve yüklemek için bu cmd'yi kullanın:

pip install --ignore-installed --upgrade /path/target.whl
4
Z.Wei

Eğer tensorflow'un pip sürümünü kullanırsanız, bu zaten derlenmiş demektir ve sadece yüklüyorsunuz demektir. Temelde tensorflow-gpu'yu yüklüyorsunuz, ancak onu depodan indirirken ve oluşturmaya çalışırken, CPU AVX desteğiyle oluşturmalısınız. Bunu görmezden gelirseniz, cpu üzerinde her çalıştırdığınızda uyarı alırsınız.

0