|
|
|
@ -61,25 +61,26 @@ class TestLstm(unittest.TestCase):
|
|
|
|
|
msg='dygraph_out is {}\n static_out is \n{}'.format(dygraph_out,
|
|
|
|
|
static_out))
|
|
|
|
|
|
|
|
|
|
def test_save_in_eval(self):
|
|
|
|
|
def test_save_in_eval(self, with_training=True):
|
|
|
|
|
paddle.jit.ProgramTranslator().enable(True)
|
|
|
|
|
net = Net(12, 2)
|
|
|
|
|
x = paddle.randn((2, 10, 12))
|
|
|
|
|
x.stop_gradient = False
|
|
|
|
|
dygraph_out = net(x)
|
|
|
|
|
loss = paddle.mean(dygraph_out)
|
|
|
|
|
sgd = paddle.optimizer.SGD(learning_rate=0.001,
|
|
|
|
|
parameters=net.parameters())
|
|
|
|
|
loss.backward()
|
|
|
|
|
sgd.step()
|
|
|
|
|
if with_training:
|
|
|
|
|
x.stop_gradient = False
|
|
|
|
|
dygraph_out = net(x)
|
|
|
|
|
loss = paddle.mean(dygraph_out)
|
|
|
|
|
sgd = paddle.optimizer.SGD(learning_rate=0.001,
|
|
|
|
|
parameters=net.parameters())
|
|
|
|
|
loss.backward()
|
|
|
|
|
sgd.step()
|
|
|
|
|
# switch eval mode firstly
|
|
|
|
|
net.eval()
|
|
|
|
|
x = paddle.randn((2, 10, 12))
|
|
|
|
|
dygraph_out = net(x)
|
|
|
|
|
dropout_out = net(x)
|
|
|
|
|
net = paddle.jit.to_static(
|
|
|
|
|
net, input_spec=[paddle.static.InputSpec(shape=[-1, 10, 12])])
|
|
|
|
|
paddle.jit.save(net, 'simple_lstm')
|
|
|
|
|
|
|
|
|
|
dygraph_out = net(x)
|
|
|
|
|
# load saved model
|
|
|
|
|
load_net = paddle.jit.load('simple_lstm')
|
|
|
|
|
|
|
|
|
@ -96,6 +97,9 @@ class TestLstm(unittest.TestCase):
|
|
|
|
|
msg='dygraph_out is {}\n static_out is \n{}'.format(dygraph_out,
|
|
|
|
|
train_out))
|
|
|
|
|
|
|
|
|
|
def test_save_without_training(self):
|
|
|
|
|
self.test_save_in_eval(with_training=False)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class LinearNet(nn.Layer):
|
|
|
|
|
def __init__(self):
|
|
|
|
|