MCPcopy Create free account
hub / github.com/apache/singa / run

Function run

examples/trans/train.py:32–149  ·  view source on GitHub ↗
(args)

Source from the content-addressed store, hash-verified

30
31
32def run(args):
33 dev = device.create_cpu_device()
34 dev.SetRandSeed(args.seed)
35 np.random.seed(args.seed)
36
37 batch_size = args.batch_size
38 cmn_dataset = CmnDataset(path=args.dataset, shuffle=args.shuffle, batch_size=batch_size, train_ratio=0.8)
39
40 print("【step-0】 prepare dataset...")
41 src_vocab_size, tgt_vocab_size = cmn_dataset.en_vab_size, cmn_dataset.cn_vab_size
42 src_len, tgt_len = cmn_dataset.src_max_len+1, cmn_dataset.tgt_max_len+1
43 pad = cmn_dataset.cn_vab["<pad>"]
44 # train set
45 train_size = cmn_dataset.train_size
46 train_max_batch = train_size // batch_size
47 if train_size % batch_size > 0:
48 train_max_batch += 1
49
50 # test set
51 test_size = cmn_dataset.test_size
52 test_max_batch = test_size // batch_size
53 if test_size % batch_size > 0:
54 test_max_batch += 1
55 print("【step-0】 src_vocab_size: %d, tgt_vocab_size: %d, src_max_len: %d, tgt_max_len: %d, "
56 "train_size: %d, test_size: %d, train_max_batch: %d, test_max_batch: %d" %
57 (src_vocab_size, tgt_vocab_size, src_len, tgt_len, train_size, test_size, train_max_batch, test_max_batch))
58
59 print("【step-1】 prepare transformer model...")
60 model = Transformer(src_n_token=src_vocab_size,
61 tgt_n_token=tgt_vocab_size,
62 d_model=args.d_model,
63 n_head=args.n_head,
64 dim_feedforward=args.dim_feedforward,
65 n_layers=args.n_layers)
66
67 optimizer = opt.SGD(lr=args.lr, momentum=0.9, weight_decay=1e-5)
68 model.set_optimizer(optimizer)
69 print("【step-1】 src_n_token: %d, tgt_n_token: %d, d_model: %d, n_head: %d, dim_feedforward: %d, n_layers: %d, lr: %f"
70 % (src_vocab_size, tgt_vocab_size, args.d_model, args.n_head, args.dim_feedforward, args.n_layers, args.lr))
71
72 tx_enc_inputs = tensor.Tensor((batch_size, src_len), dev, tensor.int32,
73 np.zeros((batch_size, src_len), dtype=np.int32))
74 tx_dec_inputs = tensor.Tensor((batch_size, tgt_len), dev, tensor.int32,
75 np.zeros((batch_size, tgt_len), dtype=np.int32))
76 ty_dec_outputs = tensor.Tensor((batch_size, tgt_len), dev, tensor.int32,
77 np.zeros((batch_size, tgt_len), dtype=np.int32))
78 # model.compile([tx_enc_inputs, tx_dec_inputs], is_train=True)
79
80 print("【step-2】 training start...")
81 train_epoch_avg_loss_history = []
82 train_epoch_avg_acc_history = []
83 test_epoch_avg_acc_history = []
84 for epoch in range(args.max_epoch):
85 # ok = input("Train[Yes/No]")
86 # if ok == "No":
87 # break
88 model.train()
89 model.graph(mode=False, sequential=False)

Callers 1

train.pyFile · 0.70

Calls 12

set_optimizerMethod · 0.95
get_batch_dataMethod · 0.95
copy_from_numpyMethod · 0.95
CmnDatasetClass · 0.90
TransformerClass · 0.90
TensorMethod · 0.80
appendMethod · 0.80
SetRandSeedMethod · 0.45
trainMethod · 0.45
graphMethod · 0.45
evalMethod · 0.45
reshapeMethod · 0.45

Tested by

no test coverage detected