def call(self, inputs, mask=None, initial_state=None, training=None):
inputs_shape = K.shape(inputs)
zeros = tf.zeros(
shape=[
inputs_shape[0],
inputs_shape[1] - 1,
self.layer.units
]
)
outputs = self.layer.call(
inputs=inputs,
mask=mask,
initial_state=initial_state,
training=training
)
outputs = K.reshape(
tf.slice(outputs, [0, inputs_shape[1] - 1, 0], [-1, 1, -1]),
shape=(inputs_shape[0], 1, self.layer.units)
)
outputs = K.concatenate([outputs, zeros], axis=1)
if 0 < self.layer.dropout + self.layer.recurrent_dropout:
outputs._uses_learning_phase = True
return outputs
评论列表
文章目录