提交 8d3f6ee0 编写于 作者: F fengjiayi

Update index

上级 ce9bf2fd
...@@ -334,6 +334,10 @@ Paddle中提供了一系列优化算法的API,这里使用Adam优化算法。 ...@@ -334,6 +334,10 @@ Paddle中提供了一系列优化算法的API,这里使用Adam优化算法。
sys.stdout.write('.') sys.stdout.write('.')
sys.stdout.flush() sys.stdout.flush()
if isinstance(event, paddle.event.EndPass): if isinstance(event, paddle.event.EndPass):
# save parameters
with open('params_pass_%d.tar' % event.pass_id, 'w') as f:
parameters.to_tar(f)
result = trainer.test(reader=test_reader, feeding=feeding) result = trainer.test(reader=test_reader, feeding=feeding)
print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics) print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics)
``` ```
......
...@@ -178,7 +178,7 @@ def convolution_net(input_dim, class_dim=2, emb_dim=128, hid_dim=128): ...@@ -178,7 +178,7 @@ def convolution_net(input_dim, class_dim=2, emb_dim=128, hid_dim=128):
act=paddle.activation.Softmax()) act=paddle.activation.Softmax())
lbl = paddle.layer.data("label", paddle.data_type.integer_value(2)) lbl = paddle.layer.data("label", paddle.data_type.integer_value(2))
cost = paddle.layer.classification_cost(input=output, label=lbl) cost = paddle.layer.classification_cost(input=output, label=lbl)
return cost return cost, output
``` ```
1. Define input data and its dimension 1. Define input data and its dimension
...@@ -217,7 +217,6 @@ def stacked_lstm_net(input_dim, ...@@ -217,7 +217,6 @@ def stacked_lstm_net(input_dim,
""" """
assert stacked_num % 2 == 1 assert stacked_num % 2 == 1
layer_attr = paddle.attr.Extra(drop_rate=0.5)
fc_para_attr = paddle.attr.Param(learning_rate=1e-3) fc_para_attr = paddle.attr.Param(learning_rate=1e-3)
lstm_para_attr = paddle.attr.Param(initial_std=0., learning_rate=1.) lstm_para_attr = paddle.attr.Param(initial_std=0., learning_rate=1.)
para_attr = [fc_para_attr, lstm_para_attr] para_attr = [fc_para_attr, lstm_para_attr]
...@@ -234,7 +233,7 @@ def stacked_lstm_net(input_dim, ...@@ -234,7 +233,7 @@ def stacked_lstm_net(input_dim,
act=linear, act=linear,
bias_attr=bias_attr) bias_attr=bias_attr)
lstm1 = paddle.layer.lstmemory( lstm1 = paddle.layer.lstmemory(
input=fc1, act=relu, bias_attr=bias_attr, layer_attr=layer_attr) input=fc1, act=relu, bias_attr=bias_attr)
inputs = [fc1, lstm1] inputs = [fc1, lstm1]
for i in range(2, stacked_num + 1): for i in range(2, stacked_num + 1):
...@@ -247,8 +246,7 @@ def stacked_lstm_net(input_dim, ...@@ -247,8 +246,7 @@ def stacked_lstm_net(input_dim,
input=fc, input=fc,
reverse=(i % 2) == 0, reverse=(i % 2) == 0,
act=relu, act=relu,
bias_attr=bias_attr, bias_attr=bias_attr)
layer_attr=layer_attr)
inputs = [fc, lstm] inputs = [fc, lstm]
fc_last = paddle.layer.pooling( fc_last = paddle.layer.pooling(
...@@ -263,7 +261,7 @@ def stacked_lstm_net(input_dim, ...@@ -263,7 +261,7 @@ def stacked_lstm_net(input_dim,
lbl = paddle.layer.data("label", paddle.data_type.integer_value(2)) lbl = paddle.layer.data("label", paddle.data_type.integer_value(2))
cost = paddle.layer.classification_cost(input=output, label=lbl) cost = paddle.layer.classification_cost(input=output, label=lbl)
return cost return cost, output
``` ```
1. Define input data and its dimension 1. Define input data and its dimension
...@@ -287,9 +285,9 @@ dict_dim = len(word_dict) ...@@ -287,9 +285,9 @@ dict_dim = len(word_dict)
class_dim = 2 class_dim = 2
# option 1 # option 1
cost = convolution_net(dict_dim, class_dim=class_dim) [cost, output] = convolution_net(dict_dim, class_dim=class_dim)
# option 2 # option 2
# cost = stacked_lstm_net(dict_dim, class_dim=class_dim, stacked_num=3) # [cost, output] = stacked_lstm_net(dict_dim, class_dim=class_dim, stacked_num=3)
``` ```
## Model Training ## Model Training
...@@ -353,6 +351,10 @@ def event_handler(event): ...@@ -353,6 +351,10 @@ def event_handler(event):
sys.stdout.write('.') sys.stdout.write('.')
sys.stdout.flush() sys.stdout.flush()
if isinstance(event, paddle.event.EndPass): if isinstance(event, paddle.event.EndPass):
# save parameters
with open('params_pass_%d.tar' % event.pass_id, 'w') as f:
parameters.to_tar(f)
result = trainer.test(reader=test_reader, feeding=feeding) result = trainer.test(reader=test_reader, feeding=feeding)
print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics) print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics)
``` ```
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册