2016-08-02 25 views
0

Ich habe eine tensorfow KonstanteWie dem Tensorflow SubTensor Werte zuweisen?

x = tf.zeros((N * (T - n + 1), n, D)) 

ich einen tensorflow Platzhalter haben:

X = tf.placeholder(tf.float32, shape=(None, None, n_in)) 

Und ich möchte einige von X x bewertet zuweisen, in numpy ich tun würde:

x[N * i:N * (i + 1), :, :] = X[:, i:i + n, :] 

Wie mache ich das im Tensorflow?

Antwort

1

Ich würde zuweisen Array Brocken mit numpy und dann zurück zu tensorflow Umwandlung:

with tf.Session() as sess: 
    #some tf operations here  
    # ... 

    x_np = np.array(sess.run(x)) 
    X_np = np.array(sess.run(X)) 

    #assign with numpy: 
    x_np[N * i:N * (i + 1), :, :] = X_np[:, i:i + n, :] 

    x_result = tf.convert_to_tensor(x_np) 
+0

Ya, das ist möglich, aber in meinem Fall muss ich es in einem Diagramm mit Platzhalter tun, was ich noch weiß nicht, Wie groß würden sie sein, also muss ich wirklich innerhalb von Tensorflow selbst außerhalb einer Sitzung tun. (Ich mache es, während ich mein neurales Netzwerk baue, also kann ich noch keine offene Sitzung haben ...) –

+1

@bisounours_tronconconneuse Nun, jetzt habe ich mich auch mit ähnlichen Problemen konfrontiert (also viel einfacher). Ich benutze 'tf.concat' von https://www.tensorflow.org/versions/r0.10/api_docs/python/array_ops.html#slicing-and-joining –

+0

Olia_Pavliuk könnten Sie Ihre Antwort bearbeiten, um zu zeigen, wie Sie es tun genau? –