Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

O google lançou recentemente uma plataforma para Aprendizagem de Máquinas. Alguém já a testou e pode dividir sua primeira impressão sobre o assunto?

+6 votos
1,025 visitas
perguntada Nov 13, 2015 em Aprendizagem de Máquinas por estudante (426 pontos)  

Estou me referindo ao TensorFlow.

TensorFlow

Compartilhe

1 Resposta

+4 votos
respondida Nov 13, 2015 por danielcajueiro (5,136 pontos)  

Sim! O Google mais uma vez está de parabéns de disponibilizar esse código conosco.

1) Fiquei bastante satisfeito que instalei rapidamente no Ubuntu 14.04 com a interface de Python. Foi tudo automático, não precisei fazer nada e pelo que percebi a instalação removeu uma versão antiga do numpy e instalou uma nova. Eu usei o comando

pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl 

que está aqui nessa página.

Nessa mesma página existem dicas para a instalação em outros sistemas. Acho que isso não deve influenciar em nada, mas tenho usado o Spyder.

2) A interface com o Python parece ser fantástica e, de acordo com os meus testes pelo menos no Ubuntu, está funcionando muito bem. Um detalhe importante é que ele foi projetado para Python 2.7. Logo, se você usa Python 3, provavelmente não funionará bem. Pelo que entendi também ainda não tem interface para o R (embora provavelmente será feita logo), mas bastante coisa também já está pronta para C++.

3) Eu testei a instalação usando esse código fornecido pelo Google aqui, que basicamente estima um modelo de regressão linear com uma constante e duas variáveis exógenas (onde eu inclui uma linha para gerar os dados para TensorBoard mencionado abaixo):

import tensorflow as tf
import numpy as np

# Make 100 phony data points in NumPy.
x_data = np.float32(np.random.rand(2, 100)) # Random input
y_data = np.dot([0.100, 0.200], x_data) + 0.300

# Construct a linear model.
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b

# Minimize the squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

# For initializing the variables.
init = tf.initialize_all_variables()

# Launch the graph
sess = tf.Session()
sess.run(init)



# Inclui apenas essa linha:
tf.train.write_graph(sess.graph_def, 'diretorio que esta o codigo', 'graph.pbtxt')


# Fit the plane.
for step in xrange(0, 201):
    sess.run(train)
    if step % 20 == 0:
        print step, sess.run(W), sess.run(b)

4) A idéia geral do sistema é fazer computação de Aprendizagem de Máquinas usando um grafo direcionado para as chamadas técnicas de "Deep Learning". Existem vários tipos de redes neurais implementadas, mas ainda não está claro para mim tudo que está implementado.

5) Um ponto alto do sistema é o chamado TensorBoard (um sistema de visualização gráfica que será muito útil para modelos complexos) que é instalado junto com a instalação acima e acessada pela porta 6006. Para executar ele, eu fiz "tensorboard --logdir nameOfDirectory" no terminal do ubuntu (desculpe-me não sei como fazer essas coisas no windows ou mac, mas deve ser fácil também) e depois você precisa apenas acessar essa porta no navegador de sua preferência (alguns sugerem que ele funciona melhor no Google Chrome) usando "http://localhost:6006/". Fazendo esse processo (que não está claro no tutorial), eu conectei o TensorBoard com o meu diretório em Python para gerar o "graph" na tela do meu navegador. A figura abaixo é um "print screen" dessa tela, que ainda não descobri exatamente como melhorar:

A imagem será apresentada aqui.

Seria bem legal se outras pessoas pudessem comentar suas próprias experiências sobre o assunto.

Pergunta relacionada:

Como implementar modelos de redes neurais clássicos usando o Tensor Flow?

...