Я использую Keras (версия 1.1.1) LSTM с Theano в качестве backend без проблем. Теперь я хотел бы переключиться на Tensorflow (версия 0.8.0) и не смог получить простой пример для работы. Проблема может быть сведена к следующему фрагменту кода, скопированному с this Keras-Tensorflow interface tutorial.Ошибка ввода формы при использовании Keras LSTM с 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)
И я получил следующее сообщение об ошибке, когда последняя строка выполняется:
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.
Есть предложения?
Пробовал это тоже. Это не работает. – Joe
Просто попробовал код на другой машине, с Ubundu 14.04, Tensorflow 0.9.0 и той же версией Keras. Он работает без проблем. Мой предыдущий запуск был в коробке CentOS с более низкой версией Tensorflow. Не уверен, что проблема с ОС или проблема с Tensorflow. Откроется отчет после обновления Tensorflow. – Joe