我一直在使用Keras(版本1.1.1)LSTM与Theano作为后端没有任何问题 . 现在我想切换到Tensorflow(版本0.8.0)并且无法得到一个简单的例子 . 问题可归结为以下从this Keras-Tensorflow interface tutorial复制的代码段 .
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)
最后一行执行时出现以下错误:
文件“/home/xxx/local/lib/python2.7/site-packages/Keras-1.1.1-py2.7.egg/keras/engine/topology.py”,第529行,在电话中返回self.call (x,mask)文件“/home/xxx/local/lib/python2.7/site-packages/Keras-1.1.1-py2.7.egg/keras/layers/recurrent.py”,第227行,正在通话中input_length = input_shape1)文件“/home/xxx/local/lib/python2.7/site-packages/Keras-1.1.1-py2.7.egg/keras/backend/tensorflow_backend.py”,第1306行,在rnn轴= [1,0]列表(范围(2,len(outputs.get_shape())))文件“/usr/local/anaconda/lib/python2.7/site-packages/tensorflow/python/framework/tensor_shape.py “,第462行,在len中引发ValueError(”不能采用具有未知等级的Shape的长度 . “)ValueError:不能获取具有未知等级的Shape的长度 .
有什么建议?
1 回答
你不能把张量流混合成像这样的keras . Keras跟张量流的形状分别跟踪张量的形状 .
尝试使用
x = Input(shape=(20,64))