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?
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 "?"
).
import tensorflow as tf
et remplacez train_data.shape
par tf.Session.run(tf.rank(train_data))
Utilisez tf.shape(tensor)
ou tf.get_shape(tensor)
.