Исправление: ваш процессор поддерживает инструкции, что этот двоичный файл TensorFlow не был скомпилирован для использования AVX2.

Расширенные векторные расширения ( AVX , также известные как новые расширения Sandy Bridge ) - это расширения для архитектуры набора команд 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. И если вы хотите больше не видеть эту ошибку, вы можете просто проигнорировать ее, добавив следующее:

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

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

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

экспорт TF_CPP_MIN_LOG_LEVEL = 2

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