Avançar para o conteúdo principal

TensorFlow Variáveis e placeholders

Neste tutorial vamos introduzir dois novos tipos de nós: variáveis e placeholders.

Depois de importarmos o tensorflow:

import tensorflow as tf

Iniciamos a sessão, mas antes fazemos o reset ao estado interno:

tf.reset_default_graph()
sess=tf.Session()

Agora podemos criar duas variáveis:

x = tf.Variable(2.0,tf.float32)
y = tf.Variable(3.0,tf.float32)

Sempre que se utilizam variáveis numa sessão tensorflow é necessário inicializa-las:

init = tf.global_variables_initializer()
sess.run(init)

Agora podemos definir a expressão matemática a utilizar:

sumnodes = x + y

Agora podemos calcular o resultado da expressão:

print(sess.run(sumnodes))

Para alterarmos os valores das variáveis devemos utilizar a função assign:

sess.run(x.assign(5.0))

Como sempre temos de executar dentro da sessão. Podemos associar esta operação a uma referência o que permite executar várias operações em simultâneo:

NewX = x.assign(5.0)
NewY = y.assign(10.0)

sess.run([NewX,NewY])

Agora, se avaliarmos a expressão o resultado é diferente:

print(sess.run(sumnodes))

Os placeholders têm um comportamento diferente, pois permite mudar o valor quando a expressão é avaliada, podendo ser definido um conjunto de valores (array) que fazem com que o TensorFlow avalie a expressão para cada um de eles.

Assim, criamos um placeholder:

a = tf.placeholder(tf.float32)

Como se pode ver não tem nenhum valor atribuído. De seguida alteramos a nossa expressão para:

sumnodes = x*a + y

Para avaliar a expressão fazemos:

print(sess.run(sumnodes,{a: 10}))

O parâmetro que é passado define o valor do placeholder. Também podemos fazer assim:

print(sess.run(sumnodes,{a: range(10)}))

ou assim:

print(sess.run(sumnodes,{a: [2,5,8,11]}))

Ao trabalharmos com variáveis e placeholders é muito importante não esquecer de fechar a sessão:

sess.close()

O vídeo no youtube


O codigo no Github

Comentários

Mensagens populares deste blogue

Vamos fazer um carro com o Unity 3D

Neste artigo vamos fazer um carro, simples, com o Unity 3D. A ideia é utilizar o motor de física do Unity 3D para simular o comportamento do carro. Os passos a seguir são: [1] - Criar um projeto novo

C# IEnumerable e IEnumerator

Neste artigo vamos aprender como utilizar a interface IEnumerator por forma a permitir utilizar um ciclo foreach num conjunto ou coleção de dados. A maior parte das coleções (listas e outras) já implementam a interface, mas neste caso vamos personalizar a maneira como percorremos a lista. Quando utilizamos código assim: foreach(Class c in Collection) { ... } O compilador converte este código em algo assim: IEnumerator cc = Collection.GetEnumerator() while(cc.MoveNext()) { c=(Class)cc.Current; ... } Ao implementar a interface IEnumerable significa que a classe implementa uma versão da função GetEnumerator() que deve devolver uma classe que implemente a interface IEnumerator. Vamos explorar um exemplo. Começamos pela classe client Esta classe permitirá guardar os dados dos clientes, existindo um campo para indicar se o cliente ainda está ativo ou não. De seguida temos uma classe que define uma lista de clientes e que implementa a interface IEnumerable que de

React - Introdução

 Neste post vamos fazer uma breve introdução ao React. React é uma framework javascript e por isso é importante ter conhecimentos desta linguagem de programação para melhor compreender o seu funcionamento. O que é necessário? Para construir páginas com React é necessário ter instalado a framework Node e o seu instalador de packages o npm. Com o Node instalado basta abrir uma janela da linha de comandos, eu aconselho utilizar o novo Windows Terminal ou o Cmder . Na sua linha de comando escolhida execute o comando: npx create-react-app Tutorial01 Este comando vai criar uma pasta com o nome Tutorial01 e instalar dos os ficheiros necessários para construir a sua primeira aplicação React dentro dessa pasta. De seguida entramos na pasta criada com o comando: cd Tutorial01 E iniciamos a aplicação com o comando: npm start Deve conseguir ver uma página com o seguinte aspeto: A partir daqui, até fechar a linha de comando, todas as alterações feitas aos ficheiros da sua aplicação são automaticam