Skip to content

Commit 33e54c4

Browse files
authored
Merge pull request #1579 from hedaoyuan/fix_sentiment_demo
Use v2 attr and pooling fix sentiment train_v2.py
2 parents 0d78440 + 1ff95e3 commit 33e54c4

File tree

1 file changed

+23
-25
lines changed

1 file changed

+23
-25
lines changed

demo/sentiment/train_v2.py

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
# limitations under the License.
1414

1515
import sys
16-
import paddle.trainer_config_helpers.attrs as attrs
17-
from paddle.trainer_config_helpers.poolings import MaxPooling
1816
import paddle.v2 as paddle
1917

2018

@@ -51,16 +49,14 @@ def stacked_lstm_net(input_dim,
5149
emb_dim: dimension of word embedding.
5250
hid_dim: dimension of hidden layer.
5351
stacked_num: number of stacked lstm-hidden layer.
54-
is_predict: is predicting or not.
55-
Some layers is not needed in network when predicting.
5652
"""
5753
assert stacked_num % 2 == 1
5854

59-
layer_attr = attrs.ExtraLayerAttribute(drop_rate=0.5)
60-
fc_para_attr = attrs.ParameterAttribute(learning_rate=1e-3)
61-
lstm_para_attr = attrs.ParameterAttribute(initial_std=0., learning_rate=1.)
55+
layer_attr = paddle.attr.Extra(drop_rate=0.5)
56+
fc_para_attr = paddle.attr.Param(learning_rate=1e-3)
57+
lstm_para_attr = paddle.attr.Param(initial_std=0., learning_rate=1.)
6258
para_attr = [fc_para_attr, lstm_para_attr]
63-
bias_attr = attrs.ParameterAttribute(initial_std=0., l2_rate=0.)
59+
bias_attr = paddle.attr.Param(initial_std=0., l2_rate=0.)
6460
relu = paddle.activation.Relu()
6561
linear = paddle.activation.Linear()
6662

@@ -90,8 +86,10 @@ def stacked_lstm_net(input_dim,
9086
layer_attr=layer_attr)
9187
inputs = [fc, lstm]
9288

93-
fc_last = paddle.layer.pooling(input=inputs[0], pooling_type=MaxPooling())
94-
lstm_last = paddle.layer.pooling(input=inputs[1], pooling_type=MaxPooling())
89+
fc_last = paddle.layer.pooling(
90+
input=inputs[0], pooling_type=paddle.pooling.Max())
91+
lstm_last = paddle.layer.pooling(
92+
input=inputs[1], pooling_type=paddle.pooling.Max())
9593
output = paddle.layer.fc(input=[fc_last, lstm_last],
9694
size=class_dim,
9795
act=paddle.activation.Softmax(),
@@ -105,14 +103,23 @@ def stacked_lstm_net(input_dim,
105103

106104
if __name__ == '__main__':
107105
# init
108-
paddle.init(use_gpu=False, trainer_count=4)
106+
paddle.init(use_gpu=False)
109107

110-
# network config
108+
#data
111109
print 'load dictionary...'
112110
word_dict = paddle.dataset.imdb.word_dict()
113111
dict_dim = len(word_dict)
114112
class_dim = 2
113+
train_reader = paddle.batch(
114+
paddle.reader.shuffle(
115+
lambda: paddle.dataset.imdb.train(word_dict), buf_size=1000),
116+
batch_size=100)
117+
test_reader = paddle.batch(
118+
lambda: paddle.dataset.imdb.test(word_dict), batch_size=100)
119+
120+
feeding = {'word': 0, 'label': 1}
115121

122+
# network config
116123
# Please choose the way to build the network
117124
# by uncommenting the corresponding line.
118125
cost = convolution_net(dict_dim, class_dim=class_dim)
@@ -137,12 +144,7 @@ def event_handler(event):
137144
sys.stdout.write('.')
138145
sys.stdout.flush()
139146
if isinstance(event, paddle.event.EndPass):
140-
result = trainer.test(
141-
reader=paddle.batch(
142-
lambda: paddle.dataset.imdb.test(word_dict),
143-
batch_size=128),
144-
feeding={'word': 0,
145-
'label': 1})
147+
result = trainer.test(reader=test_reader, feeding=feeding)
146148
print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics)
147149

148150
# create trainer
@@ -151,11 +153,7 @@ def event_handler(event):
151153
update_equation=adam_optimizer)
152154

153155
trainer.train(
154-
reader=paddle.batch(
155-
paddle.reader.shuffle(
156-
lambda: paddle.dataset.imdb.train(word_dict), buf_size=1000),
157-
batch_size=100),
156+
reader=train_reader,
158157
event_handler=event_handler,
159-
feeding={'word': 0,
160-
'label': 1},
161-
num_passes=10)
158+
feeding=feeding,
159+
num_passes=2)

0 commit comments

Comments
 (0)