2016-04-07 8 views
-1

Ich versuche, meine Eingaben mit array_ops.reverse_sequence() vor dem Senden an dynamic_rnn() umzukehren, kann das Inferenzdiagramm ohne Problem erstellt werden, aber beim Erstellen des Trainingsdiagramms habe ich den folgenden Fehler erhalten :dynamic_rnn() und array_ops.reverse_sequence() Probleme

Traceback (most recent call last): 
    File "bin/trainer.py", line 158, in <module> 
    kmer_len=args.kmer_len) 
    File "/home/ubuntu/GIT/IvyMike/ivymike/base_model.py", line 193, in run_training 
    train_op = model.training(loss, learning_rate) 
    File "/home/ubuntu/GIT/IvyMike/ivymike/base_model.py", line 100, in training 
    train_op = optimizer.minimize(loss, global_step=global_step) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/optimizer.py", line 190, in minimize 
    colocate_gradients_with_ops=colocate_gradients_with_ops) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/optimizer.py", line 241, in compute_gradients 
    colocate_gradients_with_ops=colocate_gradients_with_ops) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gradients.py", line 481, in gradients 
    in_grads = _AsList(grad_fn(op, *out_grads)) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_grad.py", line 307, in _ReverseSequenceGrad 
    seq_lengths=seq_lengths), 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 1143, in reverse_sequence 
    batch_dim=batch_dim, name=name) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/op_def_library.py", line 655, in apply_op 
    op_def=op_def) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2119, in create_op 
    set_shapes_for_outputs(ret) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1586, in set_shapes_for_outputs 
    shapes = shape_func(op) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_ops.py", line 1257, in _ReverseSequenceShape 
    (batch_dim, input_shape.ndims)) 
TypeError: %d format: a number is required, not NoneType 

Irgendeine Idee, was schief gelaufen ist?

+0

Willkommen bei StackOverflow! Um den Code zu debuggen, bearbeiten Sie Ihre Frage und geben Sie den Quellcode ein, der die Fehler verursacht hat. – gariepy

+0

Dies ist ein Fehler in der 'tf.reverse_sequence()' Implementierung! Ich habe ein [GitHub-Problem] (http://stackoverflow.com/questions/36480456/dynamic-rnn-and-array-ops-reverse-sequence-problems) eingereicht und arbeite an einer Lösung. – mrry

+0

Aus irgendwelchen Gründen kann ich meinen Code hier nicht posten, aber der Fehler tritt auf, wenn ich versuche, mehrere Schichten von BLSTM mit 'dynamic_rnn()' zu stapeln (siehe diese Anfrage: https://github.com/tensorflow/tensorflow)/Ausgaben/1779). Für den Rückwärtsdurchlauf habe ich zuerst die Eingabe mit 'array_ops.reverse_sequence()' umgekehrt und dann die Ausgabe mit der gleichen Funktion umgekehrt. Ich habe auch Feed-Forward-Layer zwischen den BLSTMs verwendet. Mit einer BLSTM-Schicht ist jedoch alles in Ordnung. Danke für die Hilfe! –

Antwort

0

Dies wurde behoben in TensorFlow