# TensorFlow

TensorFlow é uma biblioteca de código aberto para aprendizado de máquina aplicável a uma ampla variedade de tarefas. É um sistema para criação e treinamento de redes neurais para detectar e decifrar padrões e correlações, análogo (mas não igual) à forma como humanos aprendem e raciocinam. Ele é usado tanto para a pesquisa quanto produção no Google, e está aos poucos substituindo seu antecessor de código proprietário, DistBelief.
TensorFlow foi desenvolvido pela equipe Google Brain para uso interno na empresa. Foi lançado sob a licença de código aberto Apache 2.0 em 9 de novembro de 2015.

## História
### DistBelief

A partir de 2011, a Google Brain construiu DistBelief como um sistema proprietário para aprendizagem de máquina baseado em aprendizagem profunda em redes neurais. Seu uso cresceu rapidamente pelas diversas empresas do grupo Alphabet em pesquisa e aplicações comerciais. O Google colocou vários programadores, incluindo Jeff Dean, para simplificar e refatorar o código base de DistBelief para que fosse mais rápido, mais robusto e uma biblioteca que poderia ser usada por aplicativos, e esse projeto eventualmente tornou-se o TensorFlow. Em 2009, a equipe, liderada por Geoffrey Hinton, tinha implementado backpropagation generalizada e outras melhorias, o que permitiu a geração de redes neurais com muito maior precisão, como uma redução de 25% de erros no reconhecimento de fala.

### TensorFlow

TensorFlow é a segunda geração do sistema projetado pelo Google Brain. A versão 1.0.0 foi lançada em 15 de fevereiro de 2015. Embora a implementação de referência seja executada em dispositivos individuais, TensorFlow pode também ser executado em múltiplas CPUs e GPUs (com extensões opcionais CUDA para GPGPU). TensorFlow está disponível em versões de 64 bits Linux, MacOS, Windows e plataformas de computação móveis, incluindo Android e iOS.
Cálculos no TensorFlow são expressos como grafos de fluxo de dados mantendo um estado. O nome TensorFlow deriva das operações que tais redes neurais realizam em arranjos de dados multidimensionais. Estas matrizes são chamadas de "tensores". Em junho de 2016, Dean afirmou que 1.500 repositórios no GitHub mencionavam TensorFlow, dos quais apenas 5 eram do Google.

### Tensor Processing Unit (TPU)

Em maio de 2016, o Google anunciou o seu tensor processing unit (TPU), um ASIC construído especificamente para aprendizado de máquina e adaptado para o TensorFlow. TPU é um acelerador de inteligência artificial programável projetado para fornecer alta taxa de transferência para aritmética de baixa precisão (como 8 bits), e orientada para o uso ou a execução de modelos, ao invés de treino. O Google anunciou que estava usando TPUs dentro de seus centros de dados há mais de um ano, e constatou que eles conseguiam uma otimização uma ordem de magnitude melhor em performance por watt para aprendizado de máquina.
Em maio de 2017, o Google anunciou a segunda geração, bem como a disponibilidade dos TPUs no Google Compute Engine. A segunda geração de TPUs alcança até 180 teraflops de desempenho, e quando organizados em clusters de 64 TPUs, fornecem até 11.5 petaflops.

### TensorFlow Lite

Em maio de 2017, o Google anunciou um stack de software especificamente para desenvolvimento Android, TensorFlow Lite, começando com Android Oreo.

### Aplicações

O Google lançou oficialmente RankBrain em 26 de outubro de 2015, apoiado pelo TensorFlow.

## Recursos

TensorFlow fornece uma API em Python, bem como C++ , e JavaScript. Pacotes de terceiros estão disponíveis para C#, Julia, R e Scala, entre outras linguagens.
Entre as aplicações para as quais TensorFlow é a base, estão software de classificação automatizada de imagens, como o DeepDream. RankBrain agora lida com um número substancial de consultas de pesquisa, substituindo e complementando o algoritmo estático tradicional de busca baseado em resultados.

## Veja também

* Artificial neural network
* Convolucionais de rede neural
* Aprendizagem profunda
* Aprendizado de máquina