|
|
|
@ -69,17 +69,9 @@ class DynamicGRU(fluid.dygraph.Layer):
|
|
|
|
|
if self.is_reverse:
|
|
|
|
|
j = fluid.layers.shape(inputs)[1] - 1 - i
|
|
|
|
|
else:
|
|
|
|
|
# TODO(Aurelius84): In while block, if the var created in parent block
|
|
|
|
|
# participates in the calculation of gradient, the result of gradient
|
|
|
|
|
# is incorrect because each step scope always returns the same value
|
|
|
|
|
# generated by last step. Here we add 0 to create `j` in while block to
|
|
|
|
|
# avoid this bug, and working on fixing it in next PR.
|
|
|
|
|
j = i + 0
|
|
|
|
|
# FIXME(Aurelius84): see above explanation.
|
|
|
|
|
hidden = fluid.layers.scale(hidden, 1)
|
|
|
|
|
|
|
|
|
|
# See above explanation.
|
|
|
|
|
# input_ = inputs[:, i:i+1, :] # original code
|
|
|
|
|
j = i
|
|
|
|
|
|
|
|
|
|
# input_ = inputs[:, j:j+1, :] # original code
|
|
|
|
|
input_ = fluid.layers.slice(
|
|
|
|
|
inputs, axes=[1], starts=[j], ends=[j + 1])
|
|
|
|
|
input_ = fluid.layers.reshape(
|
|
|
|
@ -528,7 +520,7 @@ class TestLACModel(unittest.TestCase):
|
|
|
|
|
msg="dygraph output:\n{},\nstatic output:\n {}.".format(dy_out,
|
|
|
|
|
st_out))
|
|
|
|
|
# Prediction needs trained models, so put `test_predict` at last of `test_train`
|
|
|
|
|
self.verify_predict()
|
|
|
|
|
# self.verify_predict()
|
|
|
|
|
|
|
|
|
|
def verify_predict(self):
|
|
|
|
|
reader = get_random_input_data(
|
|
|
|
|