Correção: sua CPU oferece suporte a instruções de que este binário do TensorFlow não foi compilado para usar AVX2



Experimente Nosso Instrumento Para Eliminar Problemas

Extensões de vetor avançadas ( AVX , também conhecido como Novas extensões de Sandy Bridge ) são extensões da arquitetura de conjunto de instruções x86 para microprocessadores da Intel e AMD proposta pela Intel em março de 2008 e com suporte pela Intel com o processador Sandy Bridge lançado no primeiro trimestre de 2011 e posteriormente pela AMD com o processador Bulldozer enviado no terceiro trimestre de 2011. AVX fornece novos recursos, novas instruções e um novo esquema de codificação.



O aviso é mostrado em cmd



Esta mensagem de aviso é impressa pela biblioteca compartilhada do TensorFlow. Como a mensagem indica, a biblioteca compartilhada não inclui o tipo de instruções que sua CPU poderia usar.



O que causa este aviso?

Após o TensorFlow 1.6, os binários agora usam instruções AVX que podem não funcionar mais em CPUs mais antigas. Portanto, as CPUs mais antigas não serão capazes de executar o AVX, enquanto para as mais novas, o usuário precisa construir o tensorflow da fonte para sua CPU. Abaixo estão todas as informações que você precisa saber sobre este aviso específico. Além disso, um método sobre como se livrar desse aviso para uso futuro.

O que o AVX faz?

Em particular, o AVX introduziu o FMA (Fused multiply-add); que é a operação multiplicação-adição de ponto flutuante, e toda essa operação é feita em uma única etapa. Isso ajuda a acelerar muitas operações sem nenhum problema. Isso torna o cálculo de álgebra mais rápido e fácil de usar, também o produto escalar, multiplicação de matrizes, convolução, etc. E essas são as operações básicas mais usadas para todo treinamento de aprendizado de máquina. As CPUs que suportam AVX e FMA serão muito mais rápidas do que as mais antigas. Mas o aviso afirma que sua CPU suporta AVX, então é um bom ponto.

Tecnologia Intel AVX



Por que ele não é usado por padrão?

Isso ocorre porque a distribuição padrão do TensorFlow é construída sem as extensões da CPU. Por extensões de CPU, indica o AVX, AVX2, FMA, etc. As instruções que acionam esse problema não são habilitadas por padrão nas compilações padrão disponíveis. Os motivos pelos quais eles não estão habilitados é para torná-lo mais compatível com o maior número possível de CPUs. Além disso, para comparar essas extensões, elas são muito mais lentas na CPU do que na GPU. A CPU é usada no aprendizado de máquina em pequena escala, enquanto o uso da GPU é esperado quando ela é usada para um treinamento de aprendizado de máquina em média ou grande escala.

Consertando o Aviso!

Esses avisos são apenas mensagens simples. O objetivo desses avisos é informá-lo sobre o TensorFlow construído a partir da fonte. Quando você cria o TensorFlow a partir da fonte, ele pode ser mais rápido na máquina. Portanto, todos esses avisos falam sobre a criação do TensorFlow a partir da fonte.

Se você tiver uma GPU em sua máquina, poderá ignorar esses avisos do suporte do AVX. Porque os mais caros serão despachados em um dispositivo GPU. E se você quiser não ver mais esse erro, pode simplesmente ignorá-lo adicionando o seguinte:

importar o Módulo OS no código do programa principal e também definir o objeto de mapeamento para ele

 # Para desativar o aviso   import os   os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 

Mas se você estiver em um Unix , em seguida, use o comando export no shell bash

 exportar TF_CPP_MIN_LOG_LEVEL = 2 

Mas se você não tiver GPU e quiser usar sua CPU o máximo possível, crie o TensorFlow a partir da fonte otimizada para sua CPU com AVX, AVX2 e FMA habilitados aqui .

2 minutos lidos