Aula 11 - Tensor Flow - Redes Neurais - Variables e Placeholders
Meu github:
Documentação oficial do TensorFlow:
Link para o notebook da aula:
Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook
Link do código fluente no Pinterest
Aproveito para deixar meus link de afiliados:
Toti:
Backing track / Play-along:
Código Fluente
Putz!
Fiquem a vontade para me adicionar ao linkedin.
Aula 11 - Tensor Flow - Redes Neurais - Variables e Placeholders
Existem
dois tipos principais de objetos
tensores em grafos
tensorflow:
Otimização
Durante o processo de otimização, o
tensorflow ajusta os parâmetros do modelo.
As
variables podem guardar os valores dos
pesos e
vieses, por toda a
session.
As
variables precisam ser inicializadas.
Placeholders são vazios inicialmente e são usados para alimentar o exemplo de treinamento atual.
Mas, eles precisam da declaração do tipo esperado, exemplo,
tf.float32 e o formato dos dados.
Variables
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
sess = tf.InteractiveSession()
my_tensor = tf.random_uniform((4, 4), 0, 1)
my_var = tf.Variable(initial_value = my_tensor)
Nas linhas acima, importamos o tensorflow com comportamentos da versão v2 desabilitado.
Depois criamos uma
sessão, um
tensor random_uniform no formato
4 por
4 com os números variando entre o mínimo que é
zero e o máximo que é
1.
Em seguida criamos uma variável chamada
my_var.
Nesse ponto, se a gente rodar:
sess.run(my_var)
Vai dá o seguinte erro:
FailedPreconditionError: Attempting to use uninitialized value Variable [[{{node _retval_Variable_0_0}}]]
Porque as variáveis precisam ser inicializadas.
Inicializando variáveis
init = tf.global_variables_initializer()
sess.run(init)
Agora sim, podemos rodar:
sess.run(my_var)
Saída:
array([[0.24794829, 0.45281565, 0.01025438, 0.11464036], [0.93829536, 0.29546058, 0.21686137, 0.23481607], [0.220119 , 0.7086921 , 0.01936626, 0.47006845], [0.48482347, 0.39950764, 0.95991206, 0.18866229]], dtype=float32)
Placeholder
ph = tf.placeholder(tf.float32)
É comum termos
placeholders declarados assim:
ph = tf.placeholder(tf.float32, shape=(None, 4))
Esse primeiro campo com
None, ele é preenchido com o número de amostras no conjunto dados que alimentam em lotes esse
placeholder da rede.
Só que muitas vezes não sabemos qual é o número de amostras antes de criar o placeholder, nesse caso, coloca-se
None no primeiro campo.
Por essa aula é só, na próxima a gente constrói nossa primeira rede neural.
Nos vemos na próxima, \o/ e até lá.
Ficamos por aqui e até a próxima.
Meu github:
Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook
Link do código fluente no Pinterest
Novamente deixo meus link de afiliados:
Obrigado, até a próxima e bons estudos. ;)