Atualmente ouço muita gente falar das mágicas da Google e do Deep Learning, e o quão legal é o Tensorflow.
Mas o que eu vejo é que muita gente ainda não entende muito bem o que realmente é o Tensorflow, e como se usa ele, e o porquê ele tá tendo tanta atenção.
Primeiro vamos a alguns conceitos básicos, para entender o porquê do Tensorflow ter se tornado tão popular.
O Tensorflow trabalho com o conceito de fluxo de tensores em um gráfo.
O que é um tensor ?
Um tensor pode ser visto, para os leigos em matemática, como uma estrutura de dados que pode assumir N dimensões.


Como a Figura mostra, para o Tensorflow, um grafo é um conjunto de operações, que fica organizada no formato de um grafo. Para esse caso, há a operação Add em que duas constantes deveram gerar um resultado de soma.
Como isso pode ser traduzido no meu código ?
a = tf.constant(3.0, dtype=tf.float32) b = tf.constant(4.0) # also tf.float32 implicitly soma = tf.add(a, b, name="add")
Pronto, tendo definido o grafo, devemos rodar ele dentro de uma seção do Tensorflow.
sess = tf.Session() print(sess.run(soma))
Bom, isso parece intuitivo, mas esse grafo não parece muito útil não é mesmo?
O maior ganho de usar grafos computacionais, é que podemos arquitetar diversas operações que serão realizadas no grafo. Incluindo tensores, constantes, somas, divisões, e outras operações mais complexas.
Aqui vemos um grafo computacional completo, com várias operações. O mais interessante é que a equipe do Tensorflow disponibiliza o Tensorboard, que permite a visualização de diversas coisas referentes ao nosso grafo.
Agora entendendo um pouco o que são grafos, e tensores, temos uma breve noção de como funciona o Tensorflow.
Mas o que é feito com ele, e onde ele é utilizado ?
Na área de Machine Learning, e Deep Learning ele é utilizado basicamente para a construção de modelos de Redes Neurais. Conforme podemos perceber na Figura, elas se assemelham à um grafo computacional, onde nodos (layers) realizam operações matemáticas com arestas (tensores).
Além disso nas versões mais recentes o Tensorflow oferece um suite de APIs de alto nível, que facilita a construção de modelos de redes neurais. E também disponibiliza um repositório de modelos com diversos tipos de algoritmos, e modelos que são utilizados em todos os tipos de tarefas.
Outra novidade do Tensorflow é sua versão para Javascript, que permite rodar, e até mesmo treinar os modelos direto no Browser! E sua versão Lite, que permite rodar os modelos tanto no Android, quanto no iOS.
Finalizando
O Tensorflow é um framework cada vez mais completo, que permite criar grafos, e modelos de Machine Learning e Deep Learning, tanto com APIs de alto, e baixo nível. E agora também permite rodar os modelos criados em qualquer lugar, no browser, no servidor, e no smart-phone.
Fonte: Rodney Nogueira -MEDIUM
Fonte Imagem: TechTudo