Instalando TensorFlowErros de InstalaçãoFaltando instruções avançadas de CPU modernasResolvendo problema de falta de instruções avançadasInstalando tensorflow-cpu
Desinstalando versão atual (com problemas) do tensorflowTestando instruções avançadas na sua CPUVerificando suporte a AVXInstalando versão antiga do tensorflow (sem AVX)Solução Recomendada (ambiente tf2.10
)Ativar ambiente tf2.10
Obs.: Este guia sugere comandos para quem optou por usar miniconda para gerenciar bibliotecas/pacotes do Python. Eventualmente será necessário usar pip para completar as tarefas. Os comandos sugeridos foram executados na janela de Terminal no macOS (o comando equivalente no Linux deve ser igual ou muito semelhante).
Eventualmente faltam bibliotecas para rodar código python que requer a biblioteca tensorflow
e/ou keras
.
Por exemplo, se a biblioteca tensorflow
ainda não estiver instalada no seu environmet atual (no caso base
), aparece uma mensagem de erro como:
-> % python red_version_1.py
Traceback (most recent call last):
File "/Volumes/DADOS/Users/fpassold/Documents/IA/2025/RNs/Red/red_version_1.py", line 1, in <module>
import tensorflow as tf
ModuleNotFoundError: No module named 'tensorflow'
-> %
Note que as primeiras linhas do código red_version_1.py
contêm:
xxxxxxxxxx
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
Para instalar a biblioteca tensorflow
usando miniconda, fazer:
xxxxxxxxxx
conda install tensorflow
Note que uma série de bibliotecas extras serão instaladas também além do tensorflow
. No meu caso, isto exigiu uns 383,2 MB de espaço em disco e foi instalado o tensorflow-2.17.0
(só esta biblioteca ocupa 162,8 MB). O conda
vai perguntar se você quer prosseguir com a instalação. Simplemente digite y
(yes).
Se você possuir uma placa de vídeo da Nvidia, deverá alterar o comando anterior para:
xxxxxxxxxx
conda install tensorflow-gpu
Para testar se a instalação está correta, digite a seguinte sequência de comandos no terminal:
xxxxxxxxxx
python -c "import tensorflow as tf; print(tf.__version__)"
Eventualmente pode surgir uma mensagem de erro como:
xxxxxxxxxx
-> % python red_parte_1.py
2025-03-17 20:16:30.946030: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: SSE4.1 SSE4.2 AVX AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
Traceback (most recent call last):
File "/Volumes/DADOS/Users/fpassold/Documents/IA/2025/RNs/Red/red_version_1.py", line 2, in <module>
from tensorflow.keras.models import Sequential
ModuleNotFoundError: No module named 'tensorflow.keras'
(base) fernandopassold@MacBook-Pro-de-Fernando [20:16:39] [/Volumes/DADOS/Users/fpassold/Documents/IA/2025/RNs/Red]
-> %
Se você executou o comando python -c "import tensorflow as tf; print(tf.__version__)"
, e obteve uma mensagem como:
x-> % python -c "import tensorflow as tf; print(tf.__version__)"
2025-03-17 20:21:47.128398: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: SSE4.1 SSE4.2 AVX AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2.17.0
(base) fernandopassold@MacBook-Pro-de-Fernando [20:21:53]
-> %
Essa mensagem não é exatamente um erro, mas um aviso indicando que a versão do TensorFlow que você instalou pode não estar totalmente otimizada para sua CPU.
Isto pode ter acontecido por não usar uma versão atualizada no TensorFlow, neste caso, digite no terminal:
xxxxxxxxxx
conda install -c conda-forge tensorflow
No meu caso, o comando acima apenas instalou outra outra biblioteca mais: openssl-3.4.1
.
Mas isto não foi suficiente para solucionar o problema. Então a solução foi instalar uma versão compatível com a CPU.
tensorflow-cpu
No terminal digite:
xxxxxxxxxx
conda install -c conda-forge tensorflow-cpu
E então foi instalada a biblioteca tensorflow-cpu
.
Mas, o mesmo problema persistiu.
Como talvez esteja usando uma CPU "antiga" (i5-8350, 8a-geração, no meu caso), talvez a mesma não seja compatível com instruções otimizadas AVX
(Advanced Vector Extensions), o que obrigou a *instalação de uma versão mais antiga do tensorflorw, mas antes, faz-se necessário desinstalar a versão instalada fazendo:
xxxxxxxxxx
conda remove tensorflow
Caso ocorra um problema associado com o setuptools, tavez seja necessário forçar a desinstalção fazendo:
xxxxxxxxxx
-> % conda remove tensorflow --force
## Package Plan ##
environment location: /opt/miniconda3
removed specs:
- tensorflow
The following packages will be REMOVED:
tensorflow-2.17.0-cpu_py312hb3d9b59_0
Proceed ([y]/n)? y
No meu caso, isto também não removeu a biblioteca instalada do tensorflow. Fui obrigado à fazer:
xxxxxxxxxx
pip uninstall tensorflow
Que resultou:
xxxxxxxxxx
(base) fernandopassold@MacBook-Pro-de-Fernando [20:40:04] [/Volumes/DADOS/Users/fpassold/Documents/IA/2025/RNs/Red]
-> % pip uninstall tensorflow
Found existing installation: tensorflow 2.17.0
Uninstalling tensorflow-2.17.0:
Would remove:
/opt/miniconda3/bin/import_pb_to_tensorboard
/opt/miniconda3/bin/saved_model_cli
/opt/miniconda3/bin/tensorboard
/opt/miniconda3/bin/tf_upgrade_v2
/opt/miniconda3/bin/tflite_convert
/opt/miniconda3/bin/toco
/opt/miniconda3/bin/toco_from_protos
/opt/miniconda3/lib/python3.12/site-packages/tensorflow-2.17.0.dist-info/*
/opt/miniconda3/lib/python3.12/site-packages/tensorflow/*
Proceed (Y/n)? Y
Successfully uninstalled tensorflow-2.17.0
(base) fernandopassold@MacBook-Pro-de-Fernando [20:40:45] [/Volumes/DADOS/Users/fpassold/Documents/IA/2025/RNs/Red]
-> %
Testando...
xxxxxxxxxx
(base) fernandopassold@MacBook-Pro-de-Fernando [20:42:12] [/Volumes/DADOS/Users/fpassold/Documents/IA/2025/RNs/Red]
-> % python -c "import tensorflow as tf; print(tf.__version__)"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'tensorflow'
(base) fernandopassold@MacBook-Pro-de-Fernando [20:42:19] [/Volumes/DADOS/Users/fpassold/Documents/IA/2025/RNs/Red]
-> %
Parece que finalmente foi removida a versão do tensorflow instalada anteriormente.
O problema com CPUs mais antigas, como o Intel i5-8350U, é que as versões recentes do TensorFlow exigem suporte a AVX (Advanced Vector Extensions) para serem executadas. Se sua CPU não possui essas instruções ou se estão desativadas, você enfrentará erros ao tentar rodar o TensorFlow.
Antes de mais nada, verifique se sua CPU suporta AVX com este comando:
xxxxxxxxxx
sysctl -a | grep machdep.cpu.features
Se a saída não incluir AVX ou AVX2, significa que sua CPU não suporta essas instruções. Se a CPU suporta AVX, mas você ainda enfrenta problemas, pode ser que a funcionalidade esteja desativada no BIOS.
No meu caso específico resultou:
xxxxxxxxxx
(base) fernandopassold@MacBook-Pro-de-Fernando [21:12:50] [~]
-> % sysctl -a | grep machdep.cpu.features
machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX SMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C
(base) fernandopassold@MacBook-Pro-de-Fernando [21:12:53] [~]
-> %
No meu caso só existe AVX1.0
, significando que a CPU suporta AVX, mas não AVX2. Isso pode causar problemas com versões mais recentes do TensorFlow (>=2.11), pois elas geralmente exigem AVX2 e FMA para otimizações de desempenho.
⚠️ A partir do TensorFlow 2.11, a versão oficial para CPU exige AVX.
No meu caso, a solução foi instalar a versão TensorFlow 2.10, pois:
tf2.10
)O TensorFlow 2.10 funciona bem com Python 3.8, então essa é a versão recomendada. Isto também significa que é altamente recomendável criar um abiente especial (à parte) com o tf2.10 e python versão 3.8, fazendo (usando miniconda):
Criar um novo ambiente virtual, no caso, chamado tf2.10
:
x
conda create --name tf2.10 python=3.8
Uma série de outras bibliotecas serão instaladas, incluindo o Python 3.8.20.
Sair do ambiente atual (default: base
, ou outro qualquer):
xxxxxxxxxx
conda deactivate
Ativar o novo ambiente tf2.10
:
xxxxxxxxxx
conda activate tf2.10
Instalar o TensorFlow 2.10: O TensorFlow 2.10 não está disponível no repositório Conda padrão, então você deve instalá-lo via pip dentro do ambiente Conda:
x
pip install tensorflow-macos==2.10
Somente o tf2.10 requer 246 MB.
Testando a instalação:
x
python -c "import tensorflow as tf; print(tf.__version__)"
Se o resultado for 2.10.0
, a instalação foi bem-sucedida! 🎉
No meu caso em particular, resultou:
xxxxxxxxxx
(tf2.10) fernandopassold@MacBook-Pro-de-Fernando [21:31:11] [~]
-> % python -c "import tensorflow as tf; print(tf.__version__)"
2025-03-17 21:32:04.626784: 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: AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2.10.0
(tf2.10) fernandopassold@MacBook-Pro-de-Fernando [21:32:09] [~]
-> %
E realmente neste ambiente, o Python está ajustado para trabalhar com a versão 3.8.20:
xxxxxxxxxx
(tf2.10) fernandopassold@MacBook-Pro-de-Fernando [21:32:09] [~]
-> % python --version
Python 3.8.20
(tf2.10) fernandopassold@MacBook-Pro-de-Fernando [21:34:16] [~]
-> %
tf2.10
Se o ambiente
base
(ou outro qualquer já definido anteriormente) não estiver ativado, fazer:xxxxxxxxxx
conda activate tf2.10
17/03/2025