Complete unittest for trainer_config_helpers. (#108)
* Fix lots of trainer_config_helpers bug, and complete unittest for `layers.py`avx_docs
parent
1c56e0dc9e
commit
d130d18146
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@
|
||||
*protostr
|
@ -0,0 +1,17 @@
|
||||
7e6919d17562516e9a1d9a88de1fb3b9 img_layers.protostr
|
||||
a5d9259ff1fd7ca23d0ef090052cb1f2 last_first_seq.protostr
|
||||
9c038249ec8ff719753a746cdb04c026 layer_activations.protostr
|
||||
5913f87b39cee3b2701fa158270aca26 projections.protostr
|
||||
6b39e34beea8dfb782bee9bd3dea9eb5 simple_rnn_layers.protostr
|
||||
0fc1409600f1a3301da994ab9d28b0bf test_cost_layers.protostr
|
||||
144bc6d3a509de74115fa623741797ed test_expand_layer.protostr
|
||||
2378518bdb71e8c6e888b1842923df58 test_fc.protostr
|
||||
8bb44e1e5072d0c261572307e7672bda test_grumemory_layer.protostr
|
||||
1f3510672dce7a9ed25317fc58579ac7 test_hsigmoid.protostr
|
||||
d350bd91a0dc13e854b1364c3d9339c6 test_lstmemory_layer.protostr
|
||||
251a948ba41c1071afcd3d9cf9c233f7 test_ntm_layers.protostr
|
||||
e6ff04e70aea27c7b06d808cc49c9497 test_print_layer.protostr
|
||||
2a75dd33b640c49a8821c2da6e574577 test_rnn_group.protostr
|
||||
67d6fde3afb54f389d0ce4ff14726fe1 test_sequence_pooling.protostr
|
||||
f586a548ef4350ba1ed47a81859a64cb unused_layers.protostr
|
||||
8122477f4f65244580cec09edc590041 util_layers.protostr
|
@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
cd `dirname $0`
|
||||
export PYTHONPATH=$PWD/../../../../
|
||||
|
||||
configs=(test_fc layer_activations projections test_print_layer
|
||||
test_sequence_pooling test_lstmemory_layer test_grumemory_layer
|
||||
last_first_seq test_expand_layer test_ntm_layers test_hsigmoid
|
||||
img_layers util_layers simple_rnn_layers unused_layers test_cost_layers
|
||||
test_rnn_group)
|
||||
|
||||
|
||||
for conf in ${configs[*]}
|
||||
do
|
||||
echo "Generating " $conf
|
||||
python -m paddle.utils.dump_config $conf.py > $conf.protostr
|
||||
done
|
@ -0,0 +1,20 @@
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
learning_rate=1e-3,
|
||||
batch_size=1000
|
||||
)
|
||||
|
||||
img = data_layer(name='image', size=256*256)
|
||||
|
||||
img_conv = img_conv_layer(input=img, num_channels=1, num_filters=64,
|
||||
filter_size=(32, 64), padding=(1, 0), stride=(1, 1),
|
||||
act=LinearActivation())
|
||||
img_bn = batch_norm_layer(input=img_conv, act=ReluActivation())
|
||||
|
||||
img_norm = img_cmrnorm_layer(input=img_bn, size=32)
|
||||
|
||||
img_pool = img_pool_layer(input=img_conv, pool_size=32, pool_type=MaxPooling())
|
||||
|
||||
|
||||
outputs(img_pool, img_norm)
|
@ -0,0 +1,26 @@
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
batch_size=1000,
|
||||
learning_rate=1e-5
|
||||
)
|
||||
|
||||
din = data_layer(name='data', size=30)
|
||||
|
||||
seq_op = [
|
||||
first_seq,
|
||||
last_seq
|
||||
]
|
||||
|
||||
agg_level = [
|
||||
AggregateLevel.EACH_SEQUENCE,
|
||||
AggregateLevel.EACH_TIMESTEP
|
||||
]
|
||||
|
||||
opts = []
|
||||
|
||||
for op in seq_op:
|
||||
for al in agg_level:
|
||||
opts.append(op(input=din, agg_level=al))
|
||||
|
||||
outputs(opts)
|
@ -0,0 +1,21 @@
|
||||
'''
|
||||
Test all activations.
|
||||
'''
|
||||
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
learning_rate=1e-4,
|
||||
batch_size=1000
|
||||
)
|
||||
|
||||
din = data_layer(name='input', size=100)
|
||||
|
||||
acts = [
|
||||
TanhActivation, SigmoidActivation, SoftmaxActivation, IdentityActivation,
|
||||
LinearActivation, ExpActivation, ReluActivation, BReluActivation,
|
||||
SoftReluActivation, STanhActivation, AbsActivation, SquareActivation]
|
||||
|
||||
outputs(
|
||||
[fc_layer(input=din, size=100, act=act(), name="layer_%d" % i) for i, act in
|
||||
enumerate(acts)])
|
@ -0,0 +1,47 @@
|
||||
'''
|
||||
Test mixed layer, projections and operators.
|
||||
'''
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
batch_size=1000,
|
||||
learning_rate=1e-4
|
||||
)
|
||||
|
||||
din = data_layer(name='test', size=100)
|
||||
|
||||
din = embedding_layer(input=din, size=256)
|
||||
|
||||
with mixed_layer(size=100) as m1:
|
||||
m1 += full_matrix_projection(input=din)
|
||||
|
||||
with mixed_layer(size=100) as m2:
|
||||
m2 += table_projection(input=m1)
|
||||
|
||||
with mixed_layer(size=100) as m3:
|
||||
m3 += identity_projection(input=m2)
|
||||
|
||||
with mixed_layer(size=100) as m4:
|
||||
m4 += dotmul_projection(input=m3)
|
||||
|
||||
with mixed_layer() as m5:
|
||||
m5 += context_projection(input=m4, context_len=3)
|
||||
|
||||
with mixed_layer() as m6:
|
||||
m6 += dotmul_operator(a=m3, b=m4)
|
||||
|
||||
img = data_layer(name='img', size=32*32)
|
||||
flt = data_layer(name='filter', size=3*3*1*64)
|
||||
|
||||
with mixed_layer() as m7:
|
||||
m7 += conv_operator(img=img, filter=flt, num_filters=64,
|
||||
num_channel=1, filter_size=3)
|
||||
|
||||
end = mixed_layer(input=[full_matrix_projection(input=m5),
|
||||
trans_full_matrix_projection(input=m6),
|
||||
full_matrix_projection(input=m7)],
|
||||
size=100,
|
||||
layer_attr=ExtraAttr(drop_rate=0.5,
|
||||
error_clipping_threshold=40))
|
||||
|
||||
outputs(end)
|
@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
cd `dirname $0`
|
||||
set -e
|
||||
./generate_protostr.sh
|
||||
md5sum -c check.md5
|
@ -0,0 +1,36 @@
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
batch_size=1000,
|
||||
learning_rate=1e-4
|
||||
)
|
||||
|
||||
din = data_layer(name='data', size=200)
|
||||
|
||||
hidden = fc_layer(input=din, size=200, act=SigmoidActivation())
|
||||
|
||||
rnn = recurrent_layer(input=hidden, act=SigmoidActivation())
|
||||
|
||||
rnn2 = recurrent_layer(input=hidden, act=SigmoidActivation(), reverse=True)
|
||||
|
||||
lstm1_param = fc_layer(input=hidden, size=200*4, act=LinearActivation(),
|
||||
bias_attr=False)
|
||||
|
||||
lstm1 = lstmemory(input=lstm1_param, act=SigmoidActivation())
|
||||
|
||||
lstm2_param = fc_layer(input=hidden, size=200*4, act=LinearActivation(),
|
||||
bias_attr=False)
|
||||
|
||||
lstm2 = lstmemory(input=lstm2_param, act=SigmoidActivation(), reverse=True)
|
||||
|
||||
gru1_param = fc_layer(input=hidden, size=200*3, act=LinearActivation(),
|
||||
bias_attr=False)
|
||||
gru1 = grumemory(input=gru1_param, act=SigmoidActivation())
|
||||
|
||||
gru2_param = fc_layer(input=hidden, size=200*3, act=LinearActivation(),
|
||||
bias_attr=False)
|
||||
gru2 = grumemory(input=gru2_param, act=SigmoidActivation(), reverse=True)
|
||||
|
||||
outputs(last_seq(input=rnn), first_seq(input=rnn2),
|
||||
last_seq(input=lstm1), first_seq(input=lstm2),
|
||||
last_seq(input=gru1), first_seq(gru2))
|
@ -0,0 +1,26 @@
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
learning_rate=1e-4,
|
||||
batch_size=1000
|
||||
)
|
||||
|
||||
seq_in = data_layer(name='input', size=200)
|
||||
labels = data_layer(name='labels', size=5000)
|
||||
|
||||
probs = data_layer(name='probs', size=10)
|
||||
xe_label = data_layer(name='xe-label', size=10)
|
||||
|
||||
outputs(ctc_layer(input=seq_in, label=labels),
|
||||
crf_layer(input=fc_layer(input=seq_in, size=4),
|
||||
label=data_layer(name='crf_label', size=4)),
|
||||
rank_cost(left=data_layer(name='left', size=1),
|
||||
right=data_layer(name='right', size=1),
|
||||
label=data_layer(name='label', size=1)),
|
||||
lambda_cost(input=data_layer(name='list_feature', size=100),
|
||||
score=data_layer(name='list_scores', size=1)),
|
||||
cross_entropy(input=probs, label=xe_label),
|
||||
cross_entropy_with_selfnorm(input=probs, label=xe_label),
|
||||
huber_cost(input=data_layer(name='huber_probs', size=1),
|
||||
label=data_layer(name='huber_label', size=1)),
|
||||
multi_binary_label_cross_entropy(input=probs, label=xe_label))
|
@ -0,0 +1,14 @@
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
batch_size=1000,
|
||||
learning_rate=1e-5
|
||||
)
|
||||
|
||||
din = data_layer(name='data', size=30)
|
||||
data_seq = data_layer(name='data_seq', size=30)
|
||||
|
||||
outputs(expand_layer(input=din, expand_as=data_seq,
|
||||
expand_level=ExpandLevel.FROM_SEQUENCE),
|
||||
expand_layer(input=din, expand_as=data_seq,
|
||||
expand_level=ExpandLevel.FROM_TIMESTEP))
|
@ -0,0 +1,20 @@
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
batch_size=1000,
|
||||
learning_rate=1e-5
|
||||
)
|
||||
|
||||
din = data_layer(name='data', size=100)
|
||||
|
||||
trans = trans_layer(input=din)
|
||||
|
||||
hidden = fc_layer(input=trans, size=100,
|
||||
bias_attr=False)
|
||||
|
||||
mask = data_layer(name='mask', size=100)
|
||||
|
||||
hidden_sel = selective_fc_layer(input=din, select=mask, size=100,
|
||||
act=SigmoidActivation())
|
||||
|
||||
outputs(hidden, hidden_sel)
|
@ -0,0 +1,11 @@
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
batch_size=1000,
|
||||
learning_rate=1e-4
|
||||
)
|
||||
|
||||
din = data_layer(name='data', size=120)
|
||||
|
||||
outputs(grumemory(input=din, size=40, reverse=True, gate_act=TanhActivation(),
|
||||
act=SigmoidActivation()))
|
@ -0,0 +1,11 @@
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
learning_rate=1e-4,
|
||||
batch_size=1000
|
||||
)
|
||||
|
||||
din = data_layer(name='data', size=100)
|
||||
label = data_layer(name='label', size=10)
|
||||
|
||||
outputs(hsigmoid(input=din, label=label, num_classes=10))
|
@ -0,0 +1,11 @@
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
batch_size=1000,
|
||||
learning_rate=1e-5
|
||||
)
|
||||
|
||||
din = data_layer(name='data', size=128)
|
||||
|
||||
outputs(lstmemory(input=din, reverse=True, gate_act=TanhActivation(),
|
||||
act=TanhActivation(), size=32))
|
@ -0,0 +1,23 @@
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
batch_size=1000,
|
||||
learning_rate=1e-5
|
||||
)
|
||||
|
||||
weight = data_layer(name='w', size=1)
|
||||
a = data_layer(name='a', size=100)
|
||||
b = data_layer(name='b', size=100)
|
||||
c = data_layer(name='c', size=200)
|
||||
d = data_layer(name='d', size=31)
|
||||
|
||||
outputs(interpolation_layer(input=[a, b], weight=weight),
|
||||
power_layer(input=a, weight=weight),
|
||||
scaling_layer(input=a, weight=weight),
|
||||
cos_sim(a=a, b=b),
|
||||
cos_sim(a=a, b=c, size=2),
|
||||
sum_to_one_norm_layer(input=a),
|
||||
conv_shift_layer(a=a, b=d),
|
||||
tensor_layer(a=a, b=b, size=1000),
|
||||
slope_intercept_layer(input=a, slope=0.7, intercept=0.9),
|
||||
linear_comb_layer(weights=b, vectors=c))
|
@ -0,0 +1,12 @@
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
learning_rate=1e-4,
|
||||
batch_size=1000
|
||||
)
|
||||
|
||||
din = data_layer(name='input', size=100)
|
||||
|
||||
print_layer(input=din)
|
||||
|
||||
outputs(din)
|
@ -0,0 +1,35 @@
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
learning_rate=1e-4,
|
||||
batch_size=1000
|
||||
)
|
||||
|
||||
seq = data_layer(name='seq_input', size=100)
|
||||
sub_seq = data_layer(name='sub_seq_input', size=100)
|
||||
lbl = data_layer(name='label', size=1)
|
||||
|
||||
|
||||
def generate_rnn_simple(name):
|
||||
def rnn_simple(s):
|
||||
m = memory(name=name, size=200)
|
||||
fc = fc_layer(input=[s, m], size=200, name=name)
|
||||
return fc
|
||||
|
||||
return rnn_simple
|
||||
|
||||
|
||||
with mixed_layer() as lstm_param: # test lstm unit, rnn group
|
||||
lstm_param += full_matrix_projection(input=seq, size=100 * 4)
|
||||
|
||||
with mixed_layer() as gru_param:
|
||||
gru_param += full_matrix_projection(input=seq, size=100 * 3)
|
||||
|
||||
outputs(last_seq(input=recurrent_group(step=generate_rnn_simple('rnn_forward'),
|
||||
input=seq)),
|
||||
first_seq(input=recurrent_group(step=generate_rnn_simple('rnn_back'),
|
||||
input=seq, reverse=True)),
|
||||
last_seq(input=recurrent_group(step=generate_rnn_simple(
|
||||
'rnn_subseq_forward'), input=SubsequenceInput(input=sub_seq))),
|
||||
last_seq(input=lstmemory_group(input=lstm_param, size=100)),
|
||||
last_seq(input=gru_group(input=gru_param, size=100)))
|
@ -0,0 +1,30 @@
|
||||
from paddle.trainer_config_helpers import *
|
||||
|
||||
settings(
|
||||
learning_rate=1e-4,
|
||||
batch_size=1000
|
||||
)
|
||||
|
||||
din = data_layer(name='dat_in', size=100)
|
||||
|
||||
POOL_TYPE = [
|
||||
MaxPooling,
|
||||
AvgPooling,
|
||||
SumPooling
|
||||
]
|
||||
|
||||
AGG_LEVEL = [
|
||||
AggregateLevel.EACH_SEQUENCE,
|
||||
AggregateLevel.EACH_TIMESTEP
|
||||
]
|
||||
|
||||
opts = []
|
||||
|
||||
for pt in POOL_TYPE:
|
||||
for al in AGG_LEVEL:
|
||||
opts.append(pooling_layer(input=din, agg_level=al, pooling_type=pt()))
|
||||
|
||||
opts.append(pooling_layer(input=din,
|
||||
pooling_type=MaxPooling(output_max_index=True)))
|
||||
|
||||
outputs(opts)
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue