Виправлення: Ваш процесор підтримує інструкції, згідно з якими цей двійковий файл TensorFlow не був скомпільований для використання AVX2

Advanced Vector Extensions ( AVX , також відомий як Sandy Bridge New Extensions ) - це розширення архітектури набору команд x86 для мікропроцесорів від Intel і AMD, запропоновані Intel у березні 2008 року та спочатку підтримані Intel з доставкою процесора Sandy Bridge у І кварталі 2011 року та пізніше на AMD з процесором Bulldozer, поставленим у третьому кварталі 2011 року. AVX надає нові функції, нові інструкції та нову схему кодування.

Це попереджувальне повідомлення надруковано спільною бібліотекою TensorFlow. Як вказується в повідомленні, спільна бібліотека не включає в себе інструкції, якими може користуватися ваш процесор.

Що спричиняє це попередження?

Після TensorFlow 1.6 двійкові файли тепер використовують інструкції AVX, які можуть більше не працювати на старих процесорах. Отже, старі центральні процесори не зможуть запустити AVX, тоді як для нових, користувачеві потрібно створити тензорний потік з вихідного для свого процесора. Нижче наведена вся інформація, яку вам потрібно знати про це конкретне попередження. Також метод позбавлення цього попередження для подальшого використання.

Що робить AVX?

Зокрема, AVX представив FMA (Fused multiply-add); це операція множення-додавання з плаваючою точкою, і вся ця операція виконується в один крок. Це допомагає прискорити безліч операцій без будь-яких проблем. Це робить обчислення алгебри більш швидким і простим у використанні, а також точковий добуток, множення матриць, згортку тощо. І це все найбільш використовувані та основні операції для кожного тренування з машинного навчання. Процесори, що підтримують AVX і FMA, будуть набагато швидшими, ніж старі. Але в попередженні зазначено, що ваш процесор підтримує AVX, тому це хороший момент.

Чому він не використовується за замовчуванням?

Це тому, що розподіл за замовчуванням TensorFlow будується без розширень центрального процесора. За допомогою розширень центрального процесора він вказує AVX, AVX2, FMA тощо. Інструкції, що викликають цю проблему, за замовчуванням не ввімкнені в доступних збірках за замовчуванням. Причини, через які вони не активовані, - зробити це більш сумісним із якомога більшою кількістю процесорів. Крім того, для порівняння цих розширень, вони набагато повільніше в CPU, а не в GPU. Процесор використовується для малого машинного навчання, тоді як використання графічного процесора очікується, коли він використовується для середнього або великого навчання машинному навчанню.

Виправлення попередження!

Ці попередження - це лише прості повідомлення. Мета цих попереджень - повідомити вас про вбудований TensorFlow з джерела. Коли ви створюєте TensorFlow з джерела, це може бути швидшим на машині. Отже, всі ці попередження говорять вам про створення TensorFlow з джерела.

Якщо у вас на машині графічний процесор, ви можете ігнорувати ці попередження від служби підтримки AVX. Тому що найдорожчі будуть відправлятися на GPU-пристрої. І якщо ви хочете більше не бачити цю помилку, ви можете просто проігнорувати її, додавши це:

імпортуйте модуль ОС у ваш основний програмний код, а також встановіть для нього об’єкт відображення

# Для вимкнення імпорту попередження os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'

Але якщо ви перебуваєте на Unix , використовуйте команду експорту в оболонці bash

експортувати TF_CPP_MIN_LOG_LEVEL = 2

Але якщо у вас немає графічного процесора, і ви хочете якомога більше використовувати свій процесор, вам слід побудувати TensorFlow із джерела, оптимізованого для вашого центрального процесора з увімкненими AVX, AVX2 та FMA.