Aula 11 – Tensor Flow – Redes Neurais – Variáveis e Marcadores de posição
Aula 11 – Tensor Flow – Redes Neurais – Variables e Placeholders
Voltar para página principal do blog
Todas as aulas desse curso
Aula 10 Aula 11 (Ainda não disponível)
Meu github:
https://github.com/toticavalcanti
Documentação oficial do TensorFlow:
https://www.tensorflow.org/
Link para o notebook da aula:
notebook-da-aula
Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook
https://digitalinnovation.one/
Link do código fluente no Pinterest
Aproveito para deixar meus link de afiliados:
Hostinger
Digital Ocean
One.com
Toti:
https://www.youtube.com/channel/UCUEtjLuDpcOvR3mIUr-viOA
Backing track / Play-along:
https://www.youtube.com/channel/UCT3TryVMqTqYBjf5g5WAHfA
Código Fluente
https://www.youtube.com/channel/UCgn-O-88XBAwdG9gUWkkb0w
Putz!
https://www.youtube.com/channel/UCZXop2-CECwyFYmHbhnAkAw
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:
- Variables
- Placeholders
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.