Tensorflow 馈送RNN时的可变长度序列

Tensorflow 馈送RNN时的可变长度序列,tensorflow,keras,lstm,recurrent-neural-network,sequential,Tensorflow,Keras,Lstm,Recurrent Neural Network,Sequential,我试图建立RNN模型,其中输入序列的长度可变,我不想做填充,因为它是没有效率的 因此,我试图通过将批大小设置为keras实际支持的1,一次一个地输入一个序列。这是通过在输入中设置batch_size=None来实现的 inp = Input(shape=(None, X_train.shape[2])) layer1 = LSTM(32, activation='tanh', return_sequences=True, use_bias=False)(inp) layer2 = GRU(8,

我试图建立RNN模型,其中输入序列的长度可变,我不想做填充,因为它是没有效率的

因此,我试图通过将批大小设置为keras实际支持的1,一次一个地输入一个序列。这是通过在输入中设置batch_size=None来实现的

inp = Input(shape=(None, X_train.shape[2]))
layer1 = LSTM(32, activation='tanh', return_sequences=True, use_bias=False)(inp)
layer2 = GRU(8, activation = 'tanh', return_sequences=True, use_bias=False)(layer1)
out = GRU(1, activation = 'sigmoid', return_sequences=True, use_bias=False)(layer2)
model = Model(inputs=inp, outputs=out)

model.compile(optimizer='adam',
          loss='binary_crossentropy',
          metrics=['accuracy'])
这是模型摘要

模型:“功能性_1” _________________________________________________________________图层(类型)输出形状参数#
=====================================================================================input\u 1(InputLayer)[(无,无,11)]0
_________________________________________________________________lstm(lstm)(无,无,32)5504
_________________________________________________________________gru(gru)(无,无,8)960
_________________________________________________________________gru_1(gru)(无,无,1)27
=====================================================================总参数:6491个可训练参数:6491个不可训练参数:0 _________________________________________________________________没有

但我得到了这个错误-

---------------------------------------------------------------------------索引器回溯(最近的调用) 最后)在 ---->1 inp=输入(形状=(无,X_序列形状[2])) 2层1=LSTM(32,激活=tanh',返回序列=True,使用偏差=False)(inp) 3第2层=GRU(8,激活='tanh',返回序列=真,使用偏差=假)(第1层) 4 out=GRU(1,激活='sigmoid',返回序列=真,使用偏差=假)(第2层) 5模型=模型(输入=输入,输出=输出)

索引器错误:元组索引超出范围

请帮我解决我所犯的错误

model.fit(X_train, y_train, batch_size = 1, epochs=1, validation_data=[X_test, y_test], shuffle=True)