Ir para o conteúdo principal

TensorFlow™ no Databricks

Illustration

Variáveis

O TensorFlow é uma maneira de representar a computação sem realmente executá-la até que seja solicitada. Nesse sentido, é uma forma de computação preguiçosa, e permite grandes melhorias na execução do código:
  • Computação mais rápida de variáveis complexas
  • Computação distribuída em vários sistemas, incluindo GPUs.
  • Redundância reduzida em alguns cálculos

Vejamos como isso funciona na prática. Primeiro, um script python muito básico:

 

 

Este script basicamente diz "crie uma variável x com o valor 35, defina o valor de uma nova variável y a essa valor mais 5, que é atualmente 40, e imprima-a". O valor 40 será impresso ao executar este programa. Se você não estiver familiarizado com o python, crie um novo arquivo de texto chamado basic_script.py e copie esse código. Salve-o em seu computador e execute-o com:

python basic_script.py

Observe que o caminho (ou seja, basic_script.py) deve fazer referência ao arquivo, portanto, se ele estiver na pasta Code, você usará:

python Code/basic_script.py

Além disso, confirme se o ambiente virtual Anaconda está ativado. No Linux, isso fará com que seu prompt fique mais ou menos assim:

(tensorenv)username@computername:~$

Se estiver funcionando, vamos converter para um equivalente do TensorFlow.

 

 

Depois de executar isso, você terá um resultado bem esquisito, algo como <tensorflow.python.ops.variables.Variable object at 0x7f074bfd9ef0>. Claramente, não é o valor 40.

A razão é que nosso programa realmente faz algo bem diferente do anterior. O código aqui faz o seguinte:

  1. Importe o módulo do tensorflow e chame-o de tf
  2. Crie um valor constante chamado x e atribua a ele o valor numérico 35
  3. Crie uma variável chamada y e defina-a como a equação x + 5
  4. Imprima o objeto de equação para y

A diferença sutil é que y não recebe “o valor atual de x + 5” como em nosso programa anterior. Em vez disso, é efetivamente uma equação que significa “quando essa variável é calculada, pegue o valor de x (como está então) e adicione 5 a ele”. O cálculo do valor de y nunca é realizado de fato no programa acima.

Vamos corrigir isso:

 

 

Removemos a declaração print(y) e, em vez dela, temos um código que cria uma sessão e, na verdade, calcula o valor de y. Isso é como um boilerplate, mas funciona assim:

  1. Importe o módulo do tensorflow e chame-o de tf
  2. Crie um valor constante chamado x e atribua a ele o valor numérico 35
  3. Crie uma variável chamada y e defina-a como a equação x + 5
  4. Inicialize as variáveis com tf.global_variables_initializer() (entraremos em mais detalhes sobre isso)
  5. Crie uma sessão para calcular os valores
  6. Execute o modelo criado em 4
  7. Execute apenas a variável y e imprima seu valor atual

A etapa 4 acima é onde a mágica acontece. Nessa etapa, é criado um gráfico das dependências entre as variáveis. Nesse caso, a variável y depende da variável x, e esse valor é transformado pela adição de 5. Lembre-se de que esse valor não é calculado até a etapa 7, pois, até então, somente as equações e relações são calculadas.

1) As constantes também podem ser matrizes. Preveja o que esse código fará e execute-o para confirmar:

 

 

2) Gere uma matriz NumPy de 10.000 números aleatórios (chamada x) e crie uma variável para armazenar a equação

y = 5x2 − 3x+15

Você pode gerar a matriz NumPy usando este código:

 

 

Essa variável de dados pode ser usada no lugar da lista da pergunta 1 acima. Como regra geral, NumPy deve ser usado para listas/matrizes de números maiores, pois é significativamente mais eficiente na memória e mais rápido de calcular do que as listas. Ele também fornece um número significativo de funções (como calcular a média) que geralmente não estão disponíveis para listas.

3) Você também pode atualizar variáveis em loops, que usaremos mais tarde para machine learning. Confira este código e preveja o que ele fará (em seguida, execute-o para verificar):

 

 

4) Usando o código de (2) e (3) acima, crie um programa que calcule a média "móvel" da seguinte linha de código: np.random.randint(1000). Em outras palavras, continue fazendo um loop e, em cada loop, chame np.random.randint (1000) uma vez nesse loop e armazene a média atual em uma variável que continua atualizando cada loop.

5) Use o TensorBoard para ver o gráfico de alguns desses exemplos. Para executar o TensorBoard, use o comando: tensorboard --logdir=path/to/log-directory

 

 

Para saber mais sobre o Tensorboard, acesse nossa aula de visualização.