Коригиране: Вашият CPU поддържа инструкции, че този двоичен файл TensorFlow не е компилиран за използване на AVX2

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

Това предупредително съобщение се отпечатва от споделената библиотека на TensorFlow. Както се посочва в съобщението, споделената библиотека не включва вида инструкции, които CPU може да използва.

Какво причинява това предупреждение?

След TensorFlow 1.6, двоичните файлове вече използват инструкции на AVX, които може вече да не работят на по-стари процесори. Така че по-старите процесори няма да могат да стартират AVX, докато за по-новите потребителят трябва да изгради тензорния поток от източника за своя процесор. По-долу е цялата информация, която трябва да знаете за това конкретно предупреждение. Също така, метод за премахване на това предупреждение за бъдеща употреба.

Какво прави AVX?

По-специално, AVX представи FMA (Fused multiply-add); което е операцията за многократно добавяне с плаваща запетая и цялата тази операция се извършва в една стъпка. Това помага да се ускорят много операции без никакъв проблем. Това прави изчисляването на алгебрата по-бързо и лесно използване, също така точков продукт, умножение на матрицата, конволюция и т.н. И това са всички най-използвани и основни операции за всяко обучение за машинно обучение. Процесорите, които поддържат AVX и FMA, ще бъдат далеч по-бързи от по-старите. Но предупреждението гласи, че вашият процесор поддържа AVX, така че е добре.

Защо не се използва по подразбиране?

Това е така, защото дистрибуцията по подразбиране TensorFlow е изградена без разширенията на процесора. Чрез разширенията на процесора той посочва AVX, AVX2, FMA и др. Инструкциите, които задействат този проблем, не са активирани по подразбиране в наличните компилации по подразбиране. Причините да не са активирани е да направят това по-съвместимо с възможно най-много процесори. Също така за сравнение на тези разширения, те са много по-бавни в CPU, отколкото в GPU. CPU се използва за малкомащабно машинно обучение, докато използването на GPU се очаква, когато се използва за средно или широкомащабно обучение по машинно обучение.

Поправяне на предупреждението!

Тези предупреждения са просто съобщения. Целта на тези предупреждения е да ви информира за вградения TensorFlow от източника. Когато изграждате TensorFlow от източника, той може да бъде по-бърз на машината. Така че всички тези предупреждения ви разказват за изграждането на TensorFlow от източника.

Ако имате GPU на вашата машина, тогава можете да игнорирате тези предупреждения от поддръжката на AVX. Тъй като най-скъпите ще бъдат изпратени на GPU устройство. И ако искате повече да не виждате тази грешка, можете просто да я игнорирате, като добавите това:

импортирайте модула на ОС в основния си програмен код и също така задайте обекта на картографиране за него

# За деактивиране на предупреждението за импортиране на os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'

Но ако сте на Unix , използвайте командата за експортиране в черупката на bash

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

Но ако нямате графичен процесор и искате да използвате процесора си възможно най-много, трябва да изградите TensorFlow от източника, оптимизиран за вашия процесор с AVX, AVX2 и FMA, активирани тук.