J'ai pu exécuter mon programme python il y a trois semaines, mais maintenant, chaque fois que j'essaye de l'exécuter, j'obtiens l'erreur suivante:
AttributeError: module 'tensorflow' has no attribute 'placeholder'
J'ai installé tensorflow (version '2.0.0-alpha0'). J'ai lu quelques articles liés à ce problème. Ils disent que je devrais désinstaller TensorFlow et le réinstaller à nouveau. Le problème est que je l'exécute sur un ordinateur en cluster et que je n'ai pas les autorisations sudo
.
Une idée?
5 Réponses :
Dans Tensorflow 2.0, il n'y a pas d'espace réservé. Vous devez mettre à jour votre code TF1.x vers le code TF2.0, puis l'exécuter sur votre cluster. Veuillez consulter la documentation officielle sur la conversion de votre code TF1.x en TF2.0.
Dans les codes TF1.x, vous construisez un graphe tensorflow (graphe statique) avec des espaces réservés, des constantes, des variables. Ensuite, exécutez le code dans une session avec une commande tf.session (). Au cours de cette session, vous fournissez les valeurs de l'espace réservé et exécutez le graphique statique.
Dans TF2.0, les modèles s'exécutent avec impatience lorsque vous entrez des commandes. C'est plus pythonique. Vérifiez plus de détails sur TF 2.0 ici . Merci!
En plus de la réponse de @Vishnuvardhan Janapati, vous pouvez mettre à jour des dossiers ("* TREE") et / ou des fichiers vers la version 2 de TensorFlow. L'outil de mise à niveau tf_upgrade_v2
est automatiquement inclus dans TensorFlow 1.13 et tf_upgrade_v2
ultérieures.
tf_upgrade_v2 [-h] [--infile INPUT_FILE] [--outfile OUTPUT_FILE] [--intree INPUT_TREE] [--outtree OUTPUT_TREE] [--copyotherfiles COPY_OTHER_FILES] [--inplace] [--reportfile REPORT_FILENAME] [--mode {DEFAULT,SAFETY}] [--print_all]
Une illustration de la façon dont la conversion a corrigé l'erreur "d'espace réservé":
Remarque: cela corrige des plaintes similaires. Le module 'tensorflow' has no attribute 'xxxxx'
(pas seulement le "placeholder").
Changer la bibliothèque a fonctionné pour moi
`#libraries import tensorflow.compat.v1 as tf tf.disable_v2_behavior()`
Si cela ne fonctionne pas, vous devrez peut-être réinstaller tensorflow.
J'espère que ça aide
Après avoir inclus les bibliothèques tensorflow compat v1:
X = tf.compat.v1.placeholder(dtype="float",shape=[None, n_H0, n_W0, n_C0]) Y = tf.compat.v1.placeholder(dtype="float",shape=[None, n_y])
utilisez la syntaxe v1 comme ceci:
import tensorflow.compat.v1 as tf tf.disable_v2_behavior()`
L'appel de la fonction disable_v2_behavior()
n'est pas nécessaire
juste,
import tensorflow as tf
tf.compat.v1.placeholder()
stackoverflow.com/questions/37383812/ ... cela peut aider
@JoeA merci mais ce n'est pas le cas ... Comme je l'ai dit, je le fais à partir d'un cluster