web-dev-qa-db-fra.com

TensorFlow: AttributeError: l'objet 'Tensor' n'a pas d'attribut 'shape'

J'ai le code suivant qui utilise TensorFlow. Après avoir remodelé une liste, il dit

AttributeError: l'objet 'Tenseur' n'a pas d'attribut 'forme'

quand j'essaie d'imprimer sa forme.

# Get the shape of the training data.
print "train_data.shape: " + str(train_data.shape)
train_data = tf.reshape(train_data, [400, 1])
print "train_data.shape: " + str(train_data.shape)
train_size,num_features = train_data.shape

Sortie:

train_data.shape: (400,) Traceback (dernier appel le plus récent): Fichier "", ligne 1, dans Fichier "/home/shehab/Downloads/tools/python/pycharm-edu-2.0.4/helpers/pydev/pydev_import_hook .py ", ligne 21, dans do_import module = self._system_import (nom, * args, ** kwargs) Fichier" /home/shehab/Dropbox/py-projects/try-tf/logistic_regression.py ", ligne 77, dans print "train_data.shape:" + str (train_data.shape) AttributeError: l'objet 'Tenseur' n'a pas d'attribut 'forme'

Quelqu'un pourrait-il me dire ce qui me manque?

12
Omar Shehab

MISE À JOUR: Depuis TensorFlow 1.0, tf.Tensor Possède désormais une propriété tf.Tensor.shape , qui renvoie la même valeur que tf.Tensor.get_shape() .


En effet, dans les versions antérieures à TensorFlow 1.0 tf.Tensor N'a pas de propriété .shape. Vous devez utiliser la méthode Tensor.get_shape() à la place:

train_data = tf.reshape(train_data, [400, 1])
print "train_data.shape: " + str(train_data.get_shape())

Notez qu'en général, vous ne pourrez peut-être pas obtenir la forme réelle du résultat d'une opération TensorFlow. Dans certains cas, la forme sera une valeur calculée qui dépend de l'exécution du calcul pour trouver sa valeur; et il peut même varier d'un cycle à l'autre (par exemple la forme de tf.unique() ). Dans ce cas, le résultat de get_shape() pour certaines dimensions peut être None (ou "?").

19
mrry
import tensorflow as tf

et remplacez train_data.shape par tf.Session.run(tf.rank(train_data))

1
Sahil Unagar

Utilisez tf.shape(tensor) ou tf.get_shape(tensor).

0
rosefun