Ich habe Keras (Version 1.1.1) LSTM mit Theano als Backend ohne Probleme verwendet. Jetzt möchte ich zu Tensorflow (Version 0.8.0) wechseln und konnte kein einfaches Beispiel zum Arbeiten bekommen. Das Problem kann auf das folgende Code-Snippet reduziert werden, das von this Keras-Tensorflow interface tutorial kopiert wird.Eingabefehler bei Verwendung von Keras LSTM mit Tensorflow
from keras.layers import LSTM
import tensorflow as tf
my_graph = tf.Graph()
with my_graph.as_default():
x = tf.placeholder(tf.float32, shape=(None, 20, 64))
y = LSTM(32)(x)
Und ich habe folgende Fehlermeldung beim letzten Zeile ausgeführt wird:
File "/home/xxx/local/lib/python2.7/site-packages/Keras-1.1.1-py2.7.egg/keras/engine/topology.py", line 529, in call return self.call(x, mask)
File "/home/xxx/local/lib/python2.7/site-packages/Keras-1.1.1-py2.7.egg/keras/layers/recurrent.py", line 227, in call input_length=input_shape 1)
File "/home/xxx/local/lib/python2.7/site-packages/Keras-1.1.1-py2.7.egg/keras/backend/tensorflow_backend.py", line 1306, in rnn axes = [1, 0] + list(range(2, len(outputs.get_shape()))) File "/usr/local/anaconda/lib/python2.7/site-packages/tensorflow/python/framework/tensor_shape.py", line 462, in len raise ValueError("Cannot take the length of Shape with unknown rank.")
ValueError: Cannot take the length of Shape with unknown rank.
Irgendwelche Vorschläge?
versucht, mit auch. Es funktioniert nicht. – Joe
Ich habe den obigen Code auf einer anderen Maschine getestet, mit Ubundu 14.04, Tensorflow 0.9.0 und der gleichen Version von Keras. Es läuft ohne Probleme. Mein vorheriger Lauf war auf einer CentOS-Box mit einer niedrigeren Version von Tensorflow. Nicht sicher, ob es OS-Problem oder Tensorflow-Problem ist. Wird nach dem Upgrade von Tensorflow zurück gemeldet. – Joe