Twój procesor obsługuje instrukcje, że ten plik binarny TensorFlow nie został skompilowany do użycia: AVX AVX2
Jestem nowy w TensorFlow. Niedawno go zainstalowałem (wersja procesora Windows) i otrzymałem następujący komunikat:
Pomyślnie zainstalowany tensorflow-1.4.0 tensorflow-tensorboard-0.4.0rc2
Then when I tried to run
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()
(które znalazłem przez https://github.com/tensorflow/tensorflow )
Otrzymałem następującą wiadomość:
2017-11-02 01:56:21.698935: I C:\tf_jenkins\home\workspace\rel-win\M\windows\PY\36\tensorflow\core\platform\cpu_feature_guard.cc:137] Twój procesor obsługuje instrukcje, że ten plik binarny TensorFlow nie został skompilowany do użycia: AVX AVX2
But when I run
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
Działał tak, jak powinien i wyszedł Hello, TensorFlow!
, co wskazuje, że instalacja się powiodła, ale jest jeszcze coś, co jest złe.
9 answers
O czym jest to Ostrzeżenie?
Nowoczesne procesory dostarczają wiele instrukcji niskiego poziomu, oprócz zwykłej arytmetyki i logiki, znanych jako rozszerzenia, np. SSE2, SSE4, AVX, itp. Z Wikipedii :
Zaawansowane rozszerzenia wektorowe (AVX ) są rozszerzeniami instrukcji x86 zestaw architektury dla mikroprocesorów firmy Intel i AMD zaproponowany przez Intel w marcu 2008 roku i po raz pierwszy wspierany przez Intela z Sandy Bridge Processor wysyłka w I kw. 2011 a później przez AMD z Wysyłka procesora Bulldozer w III kwartale 2011 roku. AVX udostępnia nowe funkcje, nowe instrukcje i nowy schemat kodowania.
W szczególności AVX wprowadza operacjefused multiply-accumulate (FMA), które przyspieszają obliczenia algebry liniowej, a mianowicie iloczyn punktowy, mnożenie macierzy, splot itp. Prawie każde szkolenie z uczenia maszynowego obejmuje wiele z tych operacji, dzięki czemu będzie szybsze na procesorze obsługującym AVX i FMA (do 300%). Na Ostrzeżenie mówi, że Twój procesor obsługuje AVX (hurra!).
Chciałbym tutaj podkreślić: chodzi tylko o CPU only.
Dlaczego więc nie jest używany?
Ponieważ domyślna Dystrybucja tensorflow jest zbudowana bez rozszerzeń procesora , takich jak SSE4.1, SSE4.2, AVX, AVX2, FMA, itp. Domyślne Kompilacje (z pip install tensorflow
) mają być kompatybilne z jak największą liczbą procesorów. Innym argumentem jest to, że nawet z tymi rozszerzeniami CPU jest dużo wolniejszy niż GPU, a to oczekuje się, że średnio - i wielkoskalowe szkolenia z uczenia maszynowego będą przeprowadzane na GPU.
Jeśli masz GPU , nie powinieneś przejmować się obsługą AVX, ponieważ Najdroższe ops będą wysyłane na urządzeniu GPU (chyba że wyraźnie ustawiono nie na). W tym przypadku możesz po prostu zignorować to Ostrzeżenie przez
# Just disables the warning, doesn't take advantage of AVX/FMA to run faster
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
... lub przez ustawienie export TF_CPP_MIN_LOG_LEVEL=2
, Jeśli używasz Uniksa. Tensorflow i tak działa dobrze, ale nie zobaczysz tych irytujących Ostrzeżenia.
Jeśli nie masz GPU i chcesz wykorzystać procesor w jak największym stopniu, powinieneś zbudować tensorflow ze źródła zoptymalizowanego dla twojego CPU z włączonymi AVX, AVX2 i FMA, jeśli twój procesor je obsługuje. To zostało omówione w to pytanie, a także to zagadnienie GitHub. TensorFlow wykorzystuje system budowania ad-hoc o nazwie bazel i budowanie go nie jest takie trywialne, ale z pewnością wykonalne. Po tym, nie tylko będzie Ostrzeżenie zniknie, wydajność tensorflow powinna również poprawić.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-26 19:44:53
Zaktualizuj plik binarny tensorflow dla procesora i systemu operacyjnego za pomocą tego polecenia
pip install --ignore-installed --upgrade "Download URL"
Adres URL pliku whl do pobrania znajduje się tutaj
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-02 17:55:18
Optymalizacja PROCESORA z GPU
Istnieją korzyści wydajności, które można uzyskać instalując TensorFlow ze źródła, nawet jeśli masz GPU i używasz go do treningu i wnioskowania. Powodem jest to, że niektóre operacje TF mają tylko implementację CPU i nie mogą być uruchamiane na Twoim GPU.
Istnieją również wskazówki dotyczące poprawy wydajności, które dobrze wykorzystują procesor. TensorFlow ' s performance guide zaleca:
Umieszczanie operacji w rurociągu wejściowym na procesorze może znacznie poprawić wydajność. Wykorzystanie procesora dla potoku wejściowego pozwala GPU skupić się na treningu.
Aby uzyskać najlepszą wydajność, powinieneś napisać swój kod, aby wykorzystać procesor i GPU do pracy w tandemie, a nie zrzucić go na swój GPU, jeśli go masz. Zoptymalizowanie plików binarnych TensorFlow pod kątem PROCESORA może opłacić wiele godzin zaoszczędzonego czasu pracy i trzeba to zrobić raz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-22 00:05:49
Dla Windows, można sprawdzić Oficjalna Optymalizacja Intel MKL dla kół TensorFlow , które są skompilowane z AVX2. To rozwiązanie przyspiesza moje wnioskowanie ~x3.
conda install tensorflow-mkl
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-07 11:52:47
Dla Windows (dzięki właścicielowi f040225), przejdź do Tutaj: https://github.com/fo40225/tensorflow-windows-wheel Aby pobrać adres url dla Twojego środowiska na podstawie kombinacji "TF + python + cpu_instruction_extension". Następnie użyj tego cmd do instalacji:
pip install --ignore-installed --upgrade "URL"
Jeśli napotkasz błąd" plik nie jest plikiem zip", pobierz plik .whl na komputerze lokalnym i użyj tego cmd do instalacji:
pip install --ignore-installed --upgrade /path/target.whl
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-05 04:18:19
Jeśli używasz pip w wersji tensorflow, oznacza to, że jest już skompilowana i dopiero ją instalujesz. Zasadniczo instalujesz TensorFlow-gpu, ale kiedy pobierasz go z repozytorium i próbujesz zbudować, powinieneś zbudować go z obsługą CPU AVX. Jeśli go zignorujesz, otrzymasz ostrzeżenie za każdym razem, gdy uruchomisz procesor.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-28 15:51:59
Najprostszym sposobem, jaki znalazłem, aby to naprawić, jest odinstalowanie wszystkiego, a następnie zainstalowanie określonej wersji TensorFlow-gpu:
- Odinstaluj tensorflow:
pip uninstall tensorflow
- Odinstaluj TensorFlow-gpu: (upewnij się, że uruchomisz to, nawet jeśli nie jesteś pewien, czy go zainstalowałeś)
pip uninstall tensorflow-gpu
- zainstaluj określoną wersję TensorFlow-gpu:
pip install tensorflow-gpu==2.0.0
pip install tensorflow_hub
pip install tensorflow_datasets
Możesz sprawdzić, czy to zadziałało, dodając następujący kod do pliku Pythona:
from __future__ import absolute_import, division, print_function, unicode_literals
import numpy as np
import tensorflow as tf
import tensorflow_hub as hub
import tensorflow_datasets as tfds
print("Version: ", tf.__version__)
print("Eager mode: ", tf.executing_eagerly())
print("Hub Version: ", hub.__version__)
print("GPU is", "available" if tf.config.experimental.list_physical_devices("GPU") else "NOT AVAILABLE")
Uruchom plik i następnie wyjście powinno być mniej więcej takie:
Version: 2.0.0
Eager mode: True
Hub Version: 0.7.0
GPU is available
Hope this helps
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-29 21:26:05
To co dla mnie zadziałało to ta biblioteka https://pypi.org/project/silence-tensorflow/
Zainstaluj tę bibliotekę i postępuj zgodnie z instrukcjami na stronie, działa jak urok!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-11 14:26:56
Spróbuj użyć anakondy. Miałem ten sam błąd. Jedyną opcją było zbudowanie tensorflow ze źródła, co zajęło dużo czasu. Próbowałem użyć condy i zadziałało.
- Stwórz Nowe środowisko w Anakondzie.
conda -c conda-forge tensorflow
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-26 07:02:44