TensorFlow - Entrée split_dim' du 'Split' Op a type float32 qui ne correspond pas au type attendu de int32
J'ai installé tensorflow utilisation de pip sur ubuntu 16.04 LTS, lors de l'exécution de ce code https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/recurrent_network.py j'obtiens cette erreur
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Extracting /tmp/data/train-images-idx3-ubyte.gz
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes. Extracting /tmp/data/train-labels-idx1-ubyte.gz
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Extracting /tmp/data/t10k-images-idx3-ubyte.gz
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting /tmp/data/t10k-labels-idx1-ubyte.gz
Traceback (most recent call last):
File "deep.py", line 71, in <module>
pred = RNN(x, weights, biases)
File "deep.py", line 60, in RNN
x = tf.split(x, n_steps, 0)
File "/home/newuser/.local/lib/python2.7/site-packages/tensorflow/python/ops/array_ops.py", line 1234, in split
name=name)
File "/home/newuser/.local/lib/python2.7/site-packages/tensorflow/python/ops/gen_array_ops.py", line 3241, in _split
num_split=num_split, name=name)
File "/home/newuser/.local/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 508, in apply_op
(prefix, dtypes.as_dtype(input_arg.type).name))
TypeError: Input 'split_dim' of 'Split' Op has type float32 that does not match expected type of int32.
OriginalL'auteur user3218279 | 2017-01-25
Vous devez vous connecter pour publier un commentaire.
Il semble que vous utilisez une ancienne version de Tensorflow, et de la nécessité de mettre à jour à Tensorflow v0.12.0 ou au-dessus. L'erreur que vous obtenez est indiquant que le
split_dim
valeur dans votretf.split
fonction attend un entier, mais reçoit le tenseurx
qui est de type float32.C'est parce que dans Tensorflow versions < 0.12.0 la fonction de répartition prend les arguments:
Le tutoriel que vous travaillez à partir a été écrit pour les versions > 0.12.0, qui a été modifiée pour être compatible avec Numpy de la scission de la syntaxe:
Voir le changelog pour plus de détails:
https://github.com/tensorflow/tensorflow/blob/64edd34ce69b4a8033af5d217cb8894105297d8a/RELEASE.md
Oui, Tensorflow 0.12.0-rc0 et 0.12.0-rc1 sont les pré-versions qui contiennent encore de l'ancienne syntaxe. La nouvelle syntaxe changement ne prendra pas effet jusqu'à ce v0.12.0. Vous pouvez voir quand le changement s'est engagé à le dépôt officiel ici: github.com/tensorflow/tensorflow/commit/...
OriginalL'auteur alphaleonis
C'est parce que l'argument de l'ordre a changé
Vous pouvez voir l'émission ici : https://github.com/tensorflow/tensorflow/issues/6501
Vous pouvez regarder ce lien (qui est mentionné dans le lien ci-dessus): github.com/tensorflow/tensorflow/blob/.... Tout ce que vous devez faire est d'écrire les arguments dans un ordre différent. comme ça: tf.split(valeur, num_or_size_splits, axe)
OriginalL'auteur Arianto Wibowo