2017-06-22 5 views
1

Voici mon code https://gist.github.com/Wermarter/318756a2f4cda35ebb178a932e1f8c38AttributeError: objet 'Tensor' n'a pas d'attribut 'initialized_value'

Je suis en train de mettre en œuvre avec VAE TFLearn mais le compilateur dit:

Traceback (most recent call last): 
    File "/home/wermarter/Desktop/ChienVAE_RawTF.py", line 107, in <module> 
    main() 
    File "/home/wermarter/Desktop/ChienVAE_RawTF.py", line 101, in main 
    vae = VAE() 
    File "/home/wermarter/Desktop/ChienVAE_RawTF.py", line 26, in __init__ 
    self._build_graph() 
    File "/home/wermarter/Desktop/ChienVAE_RawTF.py", line 67, in _build_graph 
    self.training_model = tflearn.Trainer(train_ops=trainop, tensorboard_dir=TENSORBOARD_DIR) 
    File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tflearn/helpers/trainer.py", line 131, in __init__ 
    clip_gradients) 
    File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tflearn/helpers/trainer.py", line 651, in initialize_training_ops 
    ema_num_updates=self.training_steps) 
    File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tflearn/summaries.py", line 239, in add_loss_summaries 
    loss_averages_op = loss_averages.apply([loss] + other_losses) 
    File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/training/moving_averages.py", line 375, in apply 
    colocate_with_primary=(var.op.type in ["Variable", "VariableV2"])) 
    File "/home/wermarter/anaconda3/lib/python3.5/site-packages/tensorflow/python/training/slot_creator.py", line 169, in create_zeros_slot 
    else array_ops.shape(primary.initialized_value())) 
AttributeError: 'Tensor' object has no attribute 'initialized_value' 

J'ai essayé de courir quelques exemples sur github et ils ont bien fonctionné, je pense que ce n'est pas sur les bugs dans Tensorflow ou TFlearn

+0

Quelle version de TF avez-vous? J'ai exécuté votre script et je vois "ValueError: Impossible de convertir un TensorShape partiellement connu en un Tenseur: (?, 784)" J'ai 1.0.1 –

+0

@ S.Stas J'utilise TF 1.2.0. Et en cours d'exécution sur 1.0.1, il a montré que ValueError (?, 784) –

Répondre

3

L'erreur ci-dessus est un peu vague dans TF 1.2.0 mais dans TF 1.0.1 c'est beaucoup plus clair

Ceci est un problème avec mon tf.random_normal où TF ne peut pas comprendre la forme de l'entrée (la taille du lot n'est pas spécifiée). Donc, je me suis occupé de ce problème en créer un autre numéro:

batch_size = tf.shape(z_mean)[0]

eps = tf.random_normal((batch_size, self.latent_dim))

au lieu de:

eps = tf.random_normal(tf.shape(z_mean)) <==== Error

J'ai testé cette version non-erreur avec TF 1.2.0 et il a très bien fonctionné https://gist.github.com/Wermarter/9e0e29ee80adaa0f7af17b72d8e58a67

Click to see the result of 2D MNIST latent space