Correction: votre processeur prend en charge les instructions indiquant que ce binaire TensorFlow n'a pas été compilé pour utiliser AVX2

Les extensions vectorielles avancées ( AVX , également connues sous le nom de Sandy Bridge New Extensions ) sont des extensions de l'architecture de jeu d'instructions x86 pour les microprocesseurs d'Intel et d'AMD proposée par Intel en mars 2008 et d'abord supportée par Intel avec le processeur Sandy Bridge expédié au premier trimestre 2011 et plus tard par AMD avec le processeur Bulldozer expédié au troisième trimestre 2011. AVX fournit de nouvelles fonctionnalités, de nouvelles instructions et un nouveau schéma de codage.

Ce message d'avertissement est imprimé par la bibliothèque partagée de TensorFlow. Comme le message l'indique, la bibliothèque partagée n'inclut pas le type d'instructions que votre CPU pourrait utiliser.

Qu'est-ce qui cause cet avertissement?

Après TensorFlow 1.6, les binaires utilisent désormais des instructions AVX qui peuvent ne plus fonctionner sur des processeurs plus anciens. Ainsi, les anciens processeurs ne pourront pas exécuter l'AVX, tandis que pour les plus récents, l'utilisateur doit créer le tensorflow à partir de la source pour son processeur. Vous trouverez ci-dessous toutes les informations dont vous avez besoin sur cet avertissement particulier. En outre, une méthode pour se débarrasser de cet avertissement pour une utilisation future.

Que fait l'AVX?

En particulier, l'AVX a introduit le FMA (Fused multiply-add); qui est l'opération de multiplication-ajout en virgule flottante, et cette opération se fait en une seule étape. Cela permet d'accélérer de nombreuses opérations sans aucun problème. Il rend le calcul algébrique plus rapide et plus facile à utiliser, ainsi que le produit scalaire, la multiplication matricielle, la convolution, etc. Et ce sont toutes les opérations les plus utilisées et les plus basiques pour chaque formation en apprentissage automatique. Les processeurs prenant en charge l'AVX et le FMA seront bien plus rapides que les anciens. Mais l'avertissement indique que votre CPU prend en charge AVX, c'est donc un bon point.

Pourquoi n'est-il pas utilisé par défaut?

En effet, la distribution par défaut de TensorFlow est créée sans les extensions de processeur. Par extensions de CPU, il indique l'AVX, l'AVX2, le FMA, etc. Les instructions qui déclenchent ce problème ne sont pas activées par défaut sur les versions par défaut disponibles. La raison pour laquelle ils ne sont pas activés est de rendre cela plus compatible avec autant de processeurs que possible. Aussi pour comparer ces extensions, elles sont beaucoup plus lentes en CPU qu'en GPU. Le processeur est utilisé pour l'apprentissage automatique à petite échelle, tandis que l'utilisation du GPU est prévue lorsqu'il est utilisé pour une formation d'apprentissage automatique à moyenne ou grande échelle.

Correction de l'avertissement!

Ces avertissements ne sont que de simples messages. Le but de ces avertissements est de vous informer sur le TensorFlow généré à partir de la source. Lorsque vous créez le TensorFlow à partir de la source, il peut être plus rapide sur la machine. Donc, tous ces avertissements vous parlent de l'accumulation de TensorFlow à partir de la source.

Si vous avez un GPU sur votre machine, vous pouvez ignorer ces avertissements du support AVX. Parce que les plus chers seront expédiés sur un périphérique GPU. Et si vous ne voulez plus voir cette erreur, vous pouvez simplement l'ignorer en ajoutant ceci:

importez le module OS dans votre code de programme principal et définissez également l'objet de mappage pour celui-ci

# Pour désactiver l'avertissement import os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'

Mais si vous êtes sous Unix , utilisez la commande d'exportation dans le shell bash

export TF_CPP_MIN_LOG_LEVEL = 2

Mais si vous n'avez pas de GPU et que vous souhaitez utiliser votre processeur autant que possible, vous devez créer TensorFlow à partir de la source optimisée pour votre processeur avec AVX, AVX2 et FMA activés ici.

Recommandé

Correction: Minecraft ne répond pas
Qu'est-ce que l'application d'enregistrement de périphérique de tuner TV numérique et doit-elle être supprimée?
Qu'est-ce que FileRepMalware et devez-vous le supprimer?