Ricerca…


Dichiarazione e inizializzazione dei tensi variabili

I tensori variabili vengono utilizzati quando i valori richiedono un aggiornamento all'interno di una sessione. È il tipo di tensore che verrebbe utilizzato per la matrice dei pesi durante la creazione di reti neurali, poiché questi valori verranno aggiornati man mano che il modello viene addestrato.

La dichiarazione di un tensore variabile può essere eseguita utilizzando la funzione tf.Variable() o tf.get_variable() . Si consiglia di utilizzare tf.get_variable , in quanto offre una maggiore flessibilità, ad esempio:

# Declare a 2 by 3 tensor populated by ones
a = tf.Variable(tf.ones([2,3], dtype=tf.float32))
a = tf.get_variable('a', shape=[2, 3], initializer=tf.constant_initializer(1))

Qualcosa da notare è che la dichiarazione di un tensore variabile non inizializza automaticamente i valori. I valori devono essere inizializzati in modo esplicito quando si avvia una sessione utilizzando uno dei seguenti:

  • tf.global_variables_initializer().run()
  • session.run(tf.global_variables_initializer())

L'esempio seguente mostra l'intero processo di dichiarazione e inizializzazione di un tensore variabile.

# Build a graph
graph = tf.Graph()
with graph.as_default():
    a = tf.get_variable('a', shape=[2,3], initializer=tf.constant_initializer(1), dtype=tf.float32))     # Create a variable tensor

# Create a session, and run the graph
with tf.Session(graph=graph) as session:
    tf.global_variables_initializer().run()  # Initialize values of all variable tensors
    output_a = session.run(a)            # Return the value of the variable tensor
    print(output_a)                      # Print this value

Che stampa quanto segue:

[[ 1.  1.  1.]
 [ 1.  1.  1.]]

Recupera il valore di una variabile TensorFlow o di un Tensore

A volte abbiamo bisogno di recuperare e stampare il valore di una variabile TensorFlow per garantire che il nostro programma sia corretto.

Ad esempio, se abbiamo il seguente programma:

import tensorflow as tf
import numpy as np
a = tf.Variable(tf.random_normal([2,3])) # declare a tensorflow variable
b = tf.random_normal([2,2]) #declare a tensorflow tensor
init = tf.initialize_all_variables()

se vogliamo ottenere il valore di a o b, è possibile utilizzare le seguenti procedure:

with tf.Session() as sess:
    sess.run(init)
    a_value = sess.run(a)
    b_value = sess.run(b)
    print a_value
    print b_value

o

with tf.Session() as sess:
    sess.run(init)
    a_value = a.eval()
    b_value = b.eval()
    print a_value
    print b_value


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow