Path: blob/master/site/pt-br/community/contribute/code_style.md
25118 views
Guia de estilo de código para o TensorFlow
Estilo Python
Segue o guia de estilo PEP 8 Python, exceto que o TensorFlow usa 2 espaços em vez de 4. Siga o Guia de estilo Python do Google e use o pylint para verificar suas alterações no Python.
pilar
Para instalar o pylint
:
Para verificar um arquivo usando o pylint
no diretório raiz do código-fonte do TensorFlow:
Versões Python suportadas
Para versões do Python suportadas, consulte o guia de instalação do TensorFlow.
Consulte o status de build contínuo do TensorFlow para builds oficiais e com suporte da comunidade.
Estilo C++
As alterações no código C++ do TensorFlow devem estar em conformidade com o Guia de estilo C++ do Google e com os detalhes de estilo específicos do TensorFlow. Use clang-format
para verificar suas alterações em C/C++.
Para instalar no Ubuntu 16+:
Você pode verificar o formato de um arquivo C/C++ com:
Outras linguagens
Convenções e usos especiais do TensorFlow
Operações Python
Uma operação TensorFlow é uma função que, dados tensores de entrada, retorna tensores de saída (ou adiciona uma operação a um grafo ao construir grafos).
O primeiro argumento deve consistir dos tensores, seguido por parâmetros básicos do Python. O último argumento é
name
com um valor padrãoNone
.Argumentos de tensor devem ou ser um único tensor ou um iterável de tensores. Ou seja, um “Tensor ou lista de Tensores” é muito abrangente. Veja
assert_proper_iterable
.As operações que recebem tensores como argumentos devem chamar
convert_to_tensor
para converter entradas que não são de tensores em entradas de tensores se estiverem usando operações C++. Observe que os argumentos ainda são descritos como um objetoTensor
de um tipo específico na documentação.Cada operação Python deve ter um
name_scope
. Conforme visto abaixo, passe o nome da op como uma string.As operações devem conter um extenso comentário Python com declarações Args e Returns que explicam o tipo e o significado de cada valor. Possíveis formatos, dtypes ou postos devem ser especificados na descrição. Veja detalhes na documentação.
Para maior usabilidade, inclua um exemplo de uso com entradas/saídas da operação na seção Exemplo.
Evite fazer uso explícito de
tf.Tensor.eval
outf.Session.run
. Por exemplo, para escrever uma lógica que dependa do valor do Tensor, use o fluxo de controle do TensorFlow. Como alternativa, restrinja a operação para seja executada apenas quando a execução antecipada (eager) estiver ativada (tf.executing_eagerly()
).
Exemplo:
Uso: