2016-07-13 98 views

risposta

6

In realtà è possibile passare gli array numpy come argomento per initial_value, quindi tf.Variable(initial_value = np.identity(784)) dovrebbe fare ciò che si intende fare.

+1

ho trovato 'tf.Variable (tf.convert_to_tensor (np.eye (784), DTYPE = tf.float32))' opere, ma la tua risposta è più pulita. Grazie. –

2

Non si desidera installare numpy solo per np.identity?
Ecco un tensorflow sola variante:

T = tf.Variable(tf.diag(tf.ones(size))) 
4

Il tf.fn siete alla ricerca di è chiamato tf.eye. Quindi, la risposta più succinta è

T = tf.Variable(tf.eye(size)) 

Nota: mettere questo in tf.Variable inizializza pesi apprendibili l'identità, ma ammette che essa può essere modificata. Se si desidera veramente solo la costante di una matrice di identità, quindi è sufficiente utilizzare

T = tf.eye(size) 
+1

Does 'tf.eye' viene dalla versione 1.1? Ho usato 'tf.diag (tf.ones (size))' per diversi mesi, e mi sento un po 'sciocco ora ^^' – NiziL

+2

Man, Tensorflow sta cambiando così velocemente che è difficile dare un senso a tutto questo e manca una piccola funzione non è un grosso problema (anche la tua soluzione mi piace). Per quanto ne so, è stato aggiunto in [v0.12] (https://www.tensorflow.org/versions/r0.12/api_docs/python/math_ops/matrix_math_functions#eye) (almeno non ho potuto lo trovo nella v0.11, ma potrei nella v0.12). https://www.tensorflow.org/versions/ – Multihunter

+1

Totalmente d'accordo, non è un grosso problema ma un po 'frustrante perché ho cercato questa funzione prima di usare i trucchi 'diag' con la v0.11, e stare con questo soluzione dopo ... dovrei prestare più attenzione al log delle modifiche! Grazie per la scansione nell'API di tensorflow per portarmi la risposta =) – NiziL