我将在下面的代码中将从ELmo层获得的嵌入传递给GRU层。 elmo层输出大小为1024的嵌入。
def classifier_network(queryfeatures, num_classes):
queryembedfeatures=ElmoEmbeddingLayer()(queryfeatures)
gru=layers.GRU(units=200,activation='tanh',return_sequences=False,return_state=True)(queryembedfeatures)
dense = layers.Dense(num_classes,activation='tanh',name='denseA')(gru)
return dense
gru层始终会出现以下错误
/usr/local/lib/python3.6/dist-packages/keras/initializers.py in __call__(self, shape, dtype)
...
scale /= max(1., fan_out)
else:
---> scale /= max(1., float(fan_in + fan_out) / 2) #Error here
if self.distribution == 'normal':
# 0.879... = scipy.stats.truncnorm.std(a=-2, b=2, loc=0., scale=1.)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
请帮助!我试图验证输入,但是它们已经是[batch_size,numsteps,embedding_size]的形式。
所以,我认为输入形状在这里不是问题。