Ao depurar informações, quero dizer o que o TensorFlow mostra no meu terminal sobre bibliotecas carregadas e dispositivos encontrados etc., não erros de Python.
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:900] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties:
name: Graphics Device
major: 5 minor: 2 memoryClockRate (GHz) 1.0885
pciBusID 0000:04:00.0
Total memory: 12.00GiB
Free memory: 11.83GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0: Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:717] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Graphics Device, pci bus id: 0000:04:00.0)
I tensorflow/core/common_runtime/gpu/gpu_bfc_allocator.cc:51] Creating bin of max chunk size 1.0KiB
...
python
tensorflow
Ghilas BELHADJ
fonte
fonte
import warnings
vezwarnings.filterwarnings('ignore')
, execute as importações ee o código que depende do código de alfa-tensor-fluxo quebrado e ative novamente os avisos viawarnings.resetwarnings()
. O Tensorflow não deve anunciar um nome de versão acima de 0,05 neste momento.Respostas:
Você pode desativar todos os logs de depuração usando
os.environ
:Testado em tf 0,12 e 1,0
Em detalhes,
fonte
Atualização 2.0 (08/10/19) A configuração
TF_CPP_MIN_LOG_LEVEL
ainda deve funcionar (veja abaixo na v0.12 + atualização), mas atualmente há um problema em aberto (consulte o número 31870 ). Se a configuraçãoTF_CPP_MIN_LOG_LEVEL
não funcionar para você (novamente, veja abaixo), tente fazer o seguinte para definir o nível do log:Além disso, consulte a documentação em
tf.autograph.set_verbosity
que define a verbosidade das mensagens de log de autógrafos - por exemplo:v0.12 + atualização (20/5/17), trabalhando com o TF 2.0+:
No TensorFlow 0.12+, por esse problema , agora você pode controlar o log através da variável ambiental chamada
TF_CPP_MIN_LOG_LEVEL
; o padrão é 0 (todos os logs mostrados), mas pode ser definido como um dos seguintes valores naLevel
coluna.Veja o seguinte exemplo genérico do sistema operacional usando Python:
Para ser completo, você também define o nível do
tf_logging
módulo Python , que é usado em, por exemplo, operações de resumo, tensorboard, vários estimadores, etc.Para a 1.14, você receberá avisos se não mudar para usar a API v1 da seguinte maneira:
Para versões anteriores do registro do TensorFlow ou TF-Learn (v0.11.x ou inferior):
Veja a página abaixo para obter informações sobre o registro do TensorFlow; com a nova atualização, você é capaz de definir a verbosidade de registro para tanto
DEBUG
,INFO
,WARN
,ERROR
, ouFATAL
. Por exemplo:A página passa por cima de monitores que podem ser usados com os modelos TF-Learn. Aqui está a página .
Esta não bloquear todo o registo, embora (somente TF-Learn). Eu tenho duas soluções; uma é uma solução 'tecnicamente correta' (Linux) e a outra envolve a reconstrução do TensorFlow.
Para o outro, veja esta resposta que envolve a modificação da fonte e a reconstrução do TensorFlow.
fonte
export TF_CPP_MIN_LOG_LEVEL="3" && python your_code.py
TF_CPP_MIN_LOG_LEVEL="3" python your_code.py
Eu também tive esse problema (ativado
tensorflow-0.10.0rc0
), mas não foi possível corrigir o problema excessivo de registro de testes nasais através das respostas sugeridas.Consegui resolver isso sondando diretamente no registrador de fluxo tensor. Não é a correção mais correta, mas funciona muito bem e polui apenas os arquivos de teste que importam direta ou indiretamente o fluxo tensor:
fonte
tensorflow-gpu 1.14.0
. Recebeu esta saída quando chamada a função acimaThe name tf.logging.set_verbosity is deprecated. Please use tf.compat.v1.logging.set_verbosity instead.
WARNING:tensorflow:From C:/.../NN.py:297: The name tf.logging.ERROR is deprecated. Please use tf.compat.v1.logging.ERROR instead.
Agradável por não haver avisos após essas mensagensPara compatibilidade com o Tensorflow 2.0 , você pode usar
tf.get_logger
fonte
Como
TF_CPP_MIN_LOG_LEVEL
não funcionou para mim, você pode tentar:Trabalhou para mim no tensorflow v1.6.0
fonte
O gerenciador de logs python3 usual funciona para mim com tensorflow == 1.11.0:
fonte
Resolvi com este post Não é possível remover todos os avisos # 27045 e a solução foi:
fonte
Para adicionar um pouco de flexibilidade aqui, você pode obter um controle mais refinado sobre o nível de log escrevendo uma função que filtra as mensagens da maneira que desejar:
onde
my_filter_func
aceita umLogRecord
objeto como entrada [LogRecord
docs ] e retorna zero se você deseja que a mensagem seja descartada; diferente de zero caso contrário.Aqui está um exemplo de filtro que mantém apenas todas as enésimas mensagens informativas (Python 3 devido ao uso
nonlocal
aqui):Todos os itens acima assumiram que o TensorFlow já configurou seu estado de log. Você pode garantir isso sem efeitos colaterais ligando
tf.logging.get_verbosity()
antes de adicionar um filtro.fonte
Sim, estou usando o tf 2.0-beta e quero ativar / desativar o log padrão. A variável de ambiente e os métodos no tf1.X parecem não existir mais.
Eu pisei no PDB e achei que isso funcionava:
Em seguida, adiciono minha própria API do logger (neste caso, com base em arquivos)
fonte
para tensorflow 2.1.0, o código a seguir funciona bem.
fonte
Se você precisar se livrar apenas das saídas de aviso na tela , limpe o console tela logo após importar o fluxo tensor usando este comando simples (é mais eficaz do que desativar todos os logs de depuração na minha experiência):
No Windows:
No Linux ou Mac:
fonte
Nenhuma das soluções acima poderia resolver meu problema no Jupyter Notebook, então eu uso o seguinte código de trecho abaixo da Cicoria e os problemas resolvidos.
fonte