2017-08-19 1 views
-1

Hier ist das Problem .:Wie entwirf ich einen None Shape tf.placeholder?

Ich möchte einen Tensor mit unsicherer Form (abhängig von der Eingabe) deconve. Also benutze ich

tf.placeholder(dtype = tf.float32,shape=None) 

als Tensor und Dekonv.

tf.nn.conv2d_transpose() 

Aber tf.nn.conv2d_transpose() erfordert einen bestimmten Parameter output_shape. Und weil der tf.placeholder eine Form None hat ..... Tensorflow kann den Graph einfach nicht erstellen.

Ich weiß nicht wirklich, wie es funktioniert, alles schon den ganzen Tag zu mir versuchen, kam ... Bitte helfen (T.T)

+0

Wie erwarten Sie, dass die Transponierungskonvolution funktioniert, ohne explizit eine Ausgangsform zu definieren? –

+0

Da die Ausgabeform von der Eingabe abhängt ... Und ich denke, ich habe eine Lösung gefunden. –

Antwort

-1

Ich glaube, ich eine Lösung herausgefunden. Ich habe tensor.get_shape(). As_list() verwendet, um die Eingabeform zu erhalten und die Dekonvolutionsausgabeform zu berechnen. Aber es scheint Tensor.get_shape() ist eine statische Methode, um Form zu bekommen und kann nicht mit einem tf.placeholder oder Tensoren aus einem tf.placeholder abgeleitet werden und kann dann das Diagramm nicht erstellen. Also habe ich die dynamische Methode tf.shape() ausprobiert und es funktioniert !!

Aber ich kann nur sess.run (tf.shape(), feed_dict = {}) verwenden, um ein numpy Array zu erhalten. Wenn nicht, gibt es einen tf.Tensor zurück und ich kann die explizite Form nicht als int heraus finden. Irgendeine Idee auf die genaue Form (mit dem Typ int oder numpy Array) ohne Prozess sess.run() vor dem tatsächlichen Ausführen des gesamten Netzwerks?

Verwandte Themen