|
|
|
@ -58,6 +58,7 @@ class TestFusionLSTMOp(OpTest):
|
|
|
|
|
self.act_cell = 'tanh'
|
|
|
|
|
self.act_cand = 'tanh'
|
|
|
|
|
self.use_peepholes = False
|
|
|
|
|
self.use_seq = False
|
|
|
|
|
self.set_conf()
|
|
|
|
|
|
|
|
|
|
T = sum(self.lod[0])
|
|
|
|
@ -107,6 +108,7 @@ class TestFusionLSTMOp(OpTest):
|
|
|
|
|
}
|
|
|
|
|
self.attrs = {
|
|
|
|
|
'use_peepholes': self.use_peepholes,
|
|
|
|
|
'use_seq': self.use_seq,
|
|
|
|
|
'is_reverse': self.is_reverse,
|
|
|
|
|
'gate_activation': self.act_gate,
|
|
|
|
|
'cell_activation': self.act_cell,
|
|
|
|
@ -159,5 +161,68 @@ class TestFusionLSTMOpBS1(TestFusionLSTMOp):
|
|
|
|
|
self.D = 16
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestFusionLSTMOpPeepholes(TestFusionLSTMOp):
|
|
|
|
|
def set_conf(self):
|
|
|
|
|
self.use_peepholes = True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestFusionLSTMOpPeepholesInit(TestFusionLSTMOp):
|
|
|
|
|
def set_conf(self):
|
|
|
|
|
self.use_peepholes = True
|
|
|
|
|
self.has_initial_state = True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestFusionLSTMOpPeepholesReverse(TestFusionLSTMOp):
|
|
|
|
|
def set_conf(self):
|
|
|
|
|
self.use_peepholes = True
|
|
|
|
|
self.is_reverse = True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestFusionLSTMOpPoopholesBS1(TestFusionLSTMOp):
|
|
|
|
|
def set_conf(self):
|
|
|
|
|
self.use_peepholes = True
|
|
|
|
|
self.lod = [[3]]
|
|
|
|
|
self.D = 16
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestFusionLSTMOpSeqInit(TestFusionLSTMOp):
|
|
|
|
|
def set_conf(self):
|
|
|
|
|
self.use_seq = True
|
|
|
|
|
self.has_initial_state = True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestFusionLSTMOpSeqReverse(TestFusionLSTMOp):
|
|
|
|
|
def set_conf(self):
|
|
|
|
|
self.use_seq = True
|
|
|
|
|
self.is_reverse = True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestFusionLSTMOpSeqInitReverse(TestFusionLSTMOp):
|
|
|
|
|
def set_conf(self):
|
|
|
|
|
self.use_seq = True
|
|
|
|
|
self.has_initial_state = True
|
|
|
|
|
self.is_reverse = True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestFusionLSTMOpSeqPeepholes(TestFusionLSTMOp):
|
|
|
|
|
def set_conf(self):
|
|
|
|
|
self.use_seq = True
|
|
|
|
|
self.use_peepholes = True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestFusionLSTMOpSeqPeepholesInit(TestFusionLSTMOp):
|
|
|
|
|
def set_conf(self):
|
|
|
|
|
self.use_seq = True
|
|
|
|
|
self.use_peepholes = True
|
|
|
|
|
self.has_initial_state = True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestFusionLSTMOpSeqPeepholesReverse(TestFusionLSTMOp):
|
|
|
|
|
def set_conf(self):
|
|
|
|
|
self.use_seq = True
|
|
|
|
|
self.use_peepholes = True
|
|
|
|
|
self.is_reverse = True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
unittest.main()
|
|
|
|
|