2017-07-10 1 views
0

Zu sagen, ich habe einen Tensor matrix:Was ist der Unterschied zwischen den Formen in tf.shape (Tensor) und Druck (Tensor) ist

matrix=tf.convert_to_tensor([[1,1,1,1],[0,0,0,0]],dtype=tf.float32) 

und ich bekomme die Form von Matrix tf.shape(matrix) verwendet wird, ist das Ergebnis

<tf.Tensor 'Shape_2:0' shape=(2,) dtype=int32> 

jedoch print(matrix) verwenden, erhalte ich das Ergebnis:

<tf.Tensor 'Const_257:0' shape=(2, 4) dtype=float32>. 

Warum sind sie nicht gleich? Ich bin neu mit Tensorflow, kann jemand es erklären?

vielen Dank.

+1

Scheint wie Sie irgendwie die Formatierung Ihrer Frage durcheinander gebracht. Wie auch immer, ich denke, dass [diese] (https://stackoverflow.com/a/37096395/1658772) Antwort Ihre Frage beantworten wird. – chrert

Antwort

1

Die Methode tf.shape() gibt einen neuen Tensor zurück, der die Form des Eingangstensors enthält. Der zurückgegebene Tensor ist völlig anders als der Eingangstensor.

>>> import tensorflow as tf 
>>> matrix = tf.convert_to_tensor([[1,1,1,1],[0,0,0,0]],dtype=tf.float32) 
>>> matrix 
<tf.Tensor 'Const_5:0' shape=(2, 4) dtype=float32> 
>>> matrix.get_shape() 
TensorShape([Dimension(2), Dimension(4)]) 
>>> shape_tensor = tf.shape(matrix) 
>>> shape_tensor 
<tf.Tensor 'Shape_3:0' shape=(2,) dtype=int32> 
Verwandte Themen