Что означает это сообщение тензорного потока? Любой побочный эффект? Установка прошла успешно?

Я только что установил tensorflow v2.3 на anaconda python. Я попытался протестировать установку с помощью приведенной ниже команды python;

$ python -c "import tensorflow as tf; x = [[2.]]; print('tensorflow version', tf.__version__); print('hello, {}'.format(tf.matmul(x, x)))"

Я получил следующее сообщение;

2020-12-15 07:59:12.411952: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations:  AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
hello, [[4.]]

Судя по сообщению, установка прошла успешно. Но что именно означает This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations: AVX AVX2?

Использую ли я версию tensorflow с некоторыми ограниченными функциями? Какие-либо побочные эффекты?

Я использую Windows 10.

Установка конечно удалась.

guagay_wk 15.12.2020 01:10
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
111
1
180 983
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Сообщение

This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)
to use the following CPU instructions in performance-critical operations:  AVX AVX2

означает, что в местах, где важна производительность (например, умножение матриц в глубоких нейронных сетях), будут использоваться определенные оптимизированные инструкции компилятора. Установка вроде прошла успешно.

В репозитории oneDNN GitHub говорится:

Библиотека глубокой нейронной сети oneAPI (oneDNN) — это кроссплатформенная библиотека производительности с открытым исходным кодом, состоящая из основных строительных блоков для приложений глубокого обучения. Библиотека оптимизирована для процессоров архитектуры Intel, графики процессоров Intel и графики на основе архитектуры Xe. oneDNN экспериментально поддерживает следующие архитектуры:

  • 64-битная архитектура Arm* (AArch64)
  • Графический процессор NVIDIA*
  • OpenPOWER* Power ISA (PPC64)
  • IBMz* (s390x)

Есть ли способ скрыть это сообщение, не скрывая возможные ошибки в остальной части кода?

TheQuantumMan 26.02.2021 11:25

@TheQuantumMan - я думаю, stackoverflow.com/a/42121886/5666087 отвечает на ваш вопрос

jkr 26.02.2021 15:07

Я думал, что не использую oneAPI. Так что, если вы используете графический процессор NVIDIA, то гарантированно будет использоваться один API?

VimNing 16.05.2022 16:21

У меня аналогичный вопрос: поскольку я использую графический процессор Nvidia. Означает ли это сообщение, что Tensorflow может не работать с моим графическим процессором, используя эти инструкции для ЦП?

Maurício Collaça 17.01.2023 20:13

Нет, это не повлияет на то, как тензорный поток использует GPU.

jkr 17.01.2023 20:20
Ответ принят как подходящий

Важной частью Tensorflow является то, что он должен быть быстрым. При соответствующей установке он работает с процессорами, графическими процессорами или TPU. Часть быстрой работы означает, что он использует другой код в зависимости от вашего оборудования. Некоторые ЦП поддерживают операции, которые не поддерживают другие ЦП, такие как векторизованное сложение (одновременное добавление нескольких переменных). Tensorflow просто сообщает вам, что установленная вами версия может использовать операции AVX и AVX2 и настроена на это по умолчанию в определенных ситуациях (скажем, внутри матрицы прямого или обратного умножения), что может ускорить работу. Это не ошибка, это просто говорит вам, что он может и будет использовать ваш процессор для получения дополнительной скорости.

Примечание. AVX расшифровывается как Advanced Vector Extensions.

Спасибо. Похоже, это хорошая вещь. Не предупреждение, о котором стоит беспокоиться. На самом деле, если это хорошо, нет необходимости выводить сообщение для информирования пользователей. Некоторые из нас могут волноваться.

user3848207 17.12.2020 01:36

Да, у меня была именно такая жалоба, когда я впервые попробовал. Отсутствие новостей — это хорошая новость в моем мире.

mCoding 21.12.2020 20:20

Есть ли способ скрыть это сообщение, не скрывая возможные ошибки в остальной части кода?

TheQuantumMan 26.02.2021 11:25

@TheQuantumMan import os; os.environ['TF_CPP_MIN_LOG_LEVEL'] = '1' см.: stackoverflow.com/a/42121886/2547724

Riebeckite 24.02.2022 22:56

Просто чтобы быть уверенным, он уже оптимизирован? Или мне нужно как-то активировать его?

Andre Goulart 04.03.2022 02:40

Это мясо, что ваша библиотека Tensorflow сделана без этих печатных флагов и должна быть перекомпилирована с этими флагами, чтобы получить полную скорость библиотеки Tensorflow.

Leszek Kosinkiewicz 09.08.2022 15:59

Я получаю такое же сообщение в Nodejs. Можно ли скрыть сообщение в NodeJS? Я пробовал tf.env().set('PROD', true); но безрезультатно.

S M 06.09.2022 14:28

Я сделал следующие команды для установки keras и tensorflow на CPU и GPU:

conda create --name py36 python==3.6.13
conda install tensorflow
conda install keras
conda install tensorflow-gpu
conda install tensorflow-estimator==2.1.0

когда я использовал "verbose = 0" в Model.fit(), это произошло затем я удаляю это, и это решается

Я несколько раз компилировал библиотеку Tensorflow, и если у вас получилось что-то вроде следующего:

kosinkie_l@Fedora ~/project/build $ python -c "import tensorflow as tf; x = [[2.]]; print('tensorflow version', tf.__version__); print('hello, {}'.format(tf.matmul(x, x)))"

2022-08-09 15:31:03.414926: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  SSE3 SSE4.1 SSE4.2 AVX AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
tensorflow version 2.10.0-rc0
hello, Tensor("MatMul:0", shape=(1, 1), dtype=float32)
kosinkie_l@Fedora ~/project/build $

это означало, что процессор может их использовать, но библиотека Tensorflow их не использует.

Сообщения могут быть перепутаны, поэтому я выбрал исходный код (tensorflow/core/platform/cpu_feature_guard.cc:193), и есть следующее:

131 #ifndef __AVX__
132     CheckIfFeatureUnused(CPUFeature::AVX, "AVX", missing_instructions);
133 #endif  // __AVX__
134 #ifndef __AVX2__
135     CheckIfFeatureUnused(CPUFeature::AVX2, "AVX2", missing_instructions);
136 #endif  // __AVX2__
...
192     if (!missing_instructions.empty()) {
193       LOG(INFO) << "This TensorFlow binary is optimized with "
194                 << "oneAPI Deep Neural Network Library (oneDNN) "
195                 << "to use the following CPU instructions in performance-"
196                 << "critical operations: " << missing_instructions << std::endl
197                 << "To enable them in other operations, rebuild TensorFlow "
198                 << "with the appropriate compiler flags.";
199     }

Метод «CheckIfFeatureUnused(CPUFeature::AVX, «AVX»,missing_instructions)» проверяет, может ли ЦП выполнять AVX, и помещает «AVX» в коллекциюmissing_instructions, что выводится.

Спасибо за ваш полезный ответ. Вы углубились в код, к которому я боюсь идти. Я получил такое же сообщение, но я использую графический процессор Nvidia. Означает ли это сообщение, что Tensorflow может не работать с моим графическим процессором, используя эти инструкции для ЦП?

Maurício Collaça 17.01.2023 20:09

Вам нужно создать новую среду или попытаться установить тензорный поток в графическом процессоре в текущей базовой среде, для этого используйте следующие команды...

создание новой среды:

conda create --name py36 python==3.6.13 or any latest version

установка тензорного потока в ЦП:

conda install tensorflow
conda install keras

установка тензорного потока в GPU:

conda install tensorflow-gpu
conda install tensorflow-estimator==2.1.0 or any latest version

Я надеюсь, что это поможет вам, спасибо...

Это сообщение обычно появляется, когда вы используете предварительно созданный двоичный файл TensorFlow, который не включает поддержку инструкций ЦП AVX2 и FMA, которые могут значительно ускорить определенные операции. Чтобы воспользоваться этими инструкциями, вам нужно собрать TensorFlow из исходного кода с соответствующими флагами компилятора.

Чтобы решить эту проблему, вы можете выполнить следующие действия:

  1. Установите необходимые программные зависимости, такие как Python, Зависимости сборки TensorFlow и компилятор C++.

  2. Загрузите исходный код TensorFlow из официального репозитория.

  3. Настройте сборку с соответствующими флагами, чтобы включить поддержку инструкций AVX2 и FMA. Вы можете сделать это, передав --config=opt для сценария ./configure.

  4. Соберите TensorFlow из исходного кода, выполнив команду bazel build //tensorflow/tools/pip_package:build_pip_package.

  5. Наконец, установите недавно созданный пакет pip TensorFlow, запустив pip install /path/to/tensorflow_pkg.whl.

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

Другие вопросы по теме