Aula 09 – Tensor Flow – Sintaxe Básica
Aula 09 – Tensor Flow – Sintaxe Básica
Voltar para página principal do blog
Todas as aulas desse curso
Aula 08 Aula 10
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
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 09 – Tensor Flow – Sintaxe Básica
A palavra tensor é apenas uma forma sofisticada de chamar um array dimensional, isto é, uma matriz.
Começaremos criando os tensores mais básicos possíveis, eles serão constantes.
Importando o tensorflow
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
Verificando a versão
print(tf.__version__)
Criando os tensores
codigo = tf.constant("Codigo ")
fluente = tf.constant("fluente")
Verificando o tipo do objeto
type(codigo)
Imprimindo o objeto
print(codigo)
Não vai imprimir a palavra “Código“.
Para que a palavra seja impressa, o que precisamos fazer é executar esse tipo de operação dentro de uma sessão, assim como fizemos em nosso rede neural manual que criamos nas aulas anteriores.
Portanto, a maneira como realmente criamos uma sessão de fluxo tensorial é com o seguinte comando:
Criando a sessão
with tf.Session() as sess:
result = sess.run(codigo + fluente)
Imprimindo o resultado
print(result)
Obs. O ‘b‘ minúsculo antes da string de saída em python 3, representa bytes literais:
Saída: b’Codigo fluente’
Soma utilizando tensores
a = tf.constant(10)
b = tf.constant(20)
type(a)
Veja que ele controla o número de vezes que você faz a soma, olha só:
a + b
Saída: <tf.Tensor ‘add_1:0‘ shape=() dtype=int32>/h3>
a + b
Saída: <tf.Tensor ‘add_2:0‘ shape=() dtype=int32>/h3>
a + b
Saída: <tf.Tensor ‘add_3:0‘ shape=() dtype=int32>/h3>
a + b
Veja que a operação não foi feita, precisamos fazer isso dentro de uma sessão
with tf.Session() as sess:
result = sess.run(a + b)
print(result)
Saída: 30
Matrizes
Operações utilizando matrizes numpy, são as que mais são usadas no contexto do tensorflow e redes neurais.
constant = tf.constant(10)
fill_mat = tf.fill((4, 4), 10)
my_zeros = tf.zeros((4, 4))
my_ones = tf.ones((4, 4))
my_rand_n = tf.random_normal((4, 4), mean = 0, stddev = 1.0)
my_rand_u = tf.random_uniform((4, 4), minval = 0, maxval = 1)
Criando uma lista com todas as operações
my_ops = [const, fill_mat, my_zeros, my_ones, my_rand_n, my_rand_u]
Vamos executar as operações na lista em uma sessão interativa
Segundo a documentação, a única diferença entre uma sessão regular e uma sessão interativa, é que a interativa se instala como a sessão padrão no notebook.
Na prática o que acontece é que no Jupyter notebook, com a sessão interativa, você consegue rodar a sessão em múltiplas celulas.
Na verdade, não tem muita utilidade fora de um notebook.
Instanciando uma Sessão Interativa
sess = tf.InteractiveSession()
Executando
for op in my_ops:
print(sess.run(op))
print('\n')
Ou assim, usando o eval()
for op in my_ops:
print(op.eval())
print('\n')
Os métodos Tensor.eval () e Operation.run () usarão essa sessão para executar as operações.
Multiplicação de matrizes
Criando a matriz a 2 x 2
a = tf.constant([
[1, 2],
[3, 4]
])
Pegando o formato
a.get_shape()
Criando a matriz b 2 x 1
b = tf.constant([[10], [100]])
Pegando o formato
b.get_shape()
Multiplicando as matrizes
result = tf.matmul(a, b)
Executando dentro da sessão para imprimir o resultado
sess.run(result)
Posso fazer assim também:
result.eval()