Skip to content

Commit 779f512

Browse files
authored
Merge pull request #406 from yinhaofeng/log_normalization
log normalization
2 parents d9eadcc + 0d5ae17 commit 779f512

File tree

4 files changed

+89
-24
lines changed

4 files changed

+89
-24
lines changed

tools/infer.py

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
def parse_args():
5151
parser = argparse.ArgumentParser(description='paddle-rec run')
5252
parser.add_argument("-m", "--config_yaml", type=str)
53+
parser.add_argument("-o", "--opt", nargs='*', type=str)
5354
args = parser.parse_args()
5455
args.abs_dir = os.path.dirname(os.path.abspath(args.config_yaml))
5556
args.config_yaml = get_abs_model(args.config_yaml)
@@ -62,20 +63,28 @@ def main(args):
6263
config = load_yaml(args.config_yaml)
6364
dy_model_class = load_dy_model_class(args.abs_dir)
6465
config["config_abs_dir"] = args.abs_dir
66+
# modify config from command
67+
if args.opt:
68+
for parameter in args.opt:
69+
parameter = parameter.strip()
70+
key, value = parameter.split("=")
71+
config[key] = value
72+
6573
# tools.vars
6674
use_gpu = config.get("runner.use_gpu", True)
6775
use_visual = config.get("runner.use_visual", False)
6876
test_data_dir = config.get("runner.test_data_dir", None)
6977
print_interval = config.get("runner.print_interval", None)
78+
infer_batch_size = config.get("runner.infer_batch_size", None)
7079
model_load_path = config.get("runner.infer_load_path", "model_output")
7180
start_epoch = config.get("runner.infer_start_epoch", 0)
7281
end_epoch = config.get("runner.infer_end_epoch", 10)
7382

7483
logger.info("**************common.configs**********")
7584
logger.info(
76-
"use_gpu: {}, use_visual: {}, test_data_dir: {}, start_epoch: {}, end_epoch: {}, print_interval: {}, model_load_path: {}".
77-
format(use_gpu, use_visual, test_data_dir, start_epoch, end_epoch,
78-
print_interval, model_load_path))
85+
"use_gpu: {}, use_visual: {}, infer_batch_size: {}, test_data_dir: {}, start_epoch: {}, end_epoch: {}, print_interval: {}, model_load_path: {}".
86+
format(use_gpu, use_visual, infer_batch_size, test_data_dir,
87+
start_epoch, end_epoch, print_interval, model_load_path))
7988
logger.info("**************common.configs**********")
8089

8190
place = paddle.set_device('gpu' if use_gpu else 'cpu')
@@ -105,12 +114,20 @@ def main(args):
105114
model_path = os.path.join(model_load_path, str(epoch_id))
106115
load_model(model_path, dy_model)
107116
dy_model.eval()
117+
infer_reader_cost = 0.0
118+
infer_run_cost = 0.0
119+
reader_start = time.time()
120+
108121
for batch_id, batch in enumerate(test_dataloader()):
122+
infer_reader_cost += time.time() - reader_start
123+
infer_start = time.time()
109124
batch_size = len(batch[0])
110125

111126
metric_list, tensor_print_dict = dy_model_class.infer_forward(
112127
dy_model, metric_list, batch, config)
113128

129+
infer_run_cost += time.time() - infer_start
130+
114131
if batch_id % print_interval == 0:
115132
tensor_print_str = ""
116133
if tensor_print_dict is not None:
@@ -133,13 +150,19 @@ def main(args):
133150
tag="infer/" + metric_list_name[metric_id],
134151
step=step_num,
135152
value=metric_list[metric_id].accumulate())
136-
logger.info("epoch: {}, batch_id: {}, ".format(
137-
epoch_id, batch_id) + metric_str + tensor_print_str +
138-
" speed: {:.2f} ins/s".format(
139-
print_interval * batch_size / (time.time(
140-
) - interval_begin)))
153+
logger.info(
154+
"epoch: {}, batch_id: {}, ".format(
155+
epoch_id, batch_id) + metric_str + tensor_print_str +
156+
" avg_reader_cost: {:.5f} sec, avg_batch_cost: {:.5f} sec, avg_samples: {:.5f}, ips: {:.2f} ins/s".
157+
format(infer_reader_cost / print_interval, (
158+
infer_reader_cost + infer_run_cost) / print_interval,
159+
infer_batch_size, print_interval * batch_size / (
160+
time.time() - interval_begin)))
141161
interval_begin = time.time()
162+
infer_reader_cost = 0.0
163+
infer_run_cost = 0.0
142164
step_num = step_num + 1
165+
reader_start = time.time()
143166

144167
metric_str = ""
145168
for metric_id in range(len(metric_list_name)):

tools/static_infer.py

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
def parse_args():
3636
parser = argparse.ArgumentParser("PaddleRec train static script")
3737
parser.add_argument("-m", "--config_yaml", type=str)
38+
parser.add_argument("-o", "--opt", nargs='*', type=str)
3839
args = parser.parse_args()
3940
args.abs_dir = os.path.dirname(os.path.abspath(args.config_yaml))
4041
args.config_yaml = get_abs_model(args.config_yaml)
@@ -47,6 +48,12 @@ def main(args):
4748
# load config
4849
config = load_yaml(args.config_yaml)
4950
config["config_abs_dir"] = args.abs_dir
51+
# modify config from command
52+
if args.opt:
53+
for parameter in args.opt:
54+
parameter = parameter.strip()
55+
key, value = parameter.split("=")
56+
config[key] = value
5057
# load static model class
5158
static_model_class = load_static_model_class(config)
5259

@@ -69,9 +76,9 @@ def main(args):
6976
os.environ["CPU_NUM"] = str(config.get("runner.thread_num", 1))
7077
logger.info("**************common.configs**********")
7178
logger.info(
72-
"use_gpu: {}, use_visual: {}, test_data_dir: {}, start_epoch: {}, end_epoch: {}, print_interval: {}, model_load_path: {}".
73-
format(use_gpu, use_visual, test_data_dir, start_epoch, end_epoch,
74-
print_interval, model_load_path))
79+
"use_gpu: {}, use_visual: {}, infer_batch_size: {}, test_data_dir: {}, start_epoch: {}, end_epoch: {}, print_interval: {}, model_load_path: {}".
80+
format(use_gpu, use_visual, batch_size, test_data_dir, start_epoch,
81+
end_epoch, print_interval, model_load_path))
7582
logger.info("**************common.configs**********")
7683

7784
place = paddle.set_device('gpu' if use_gpu else 'cpu')
@@ -98,13 +105,20 @@ def main(args):
98105

99106
epoch_begin = time.time()
100107
interval_begin = time.time()
108+
infer_reader_cost = 0.0
109+
infer_run_cost = 0.0
110+
reader_start = time.time()
111+
101112
if use_auc:
102113
reset_auc(auc_num)
103114
for batch_id, batch_data in enumerate(test_dataloader()):
115+
infer_reader_cost += time.time() - reader_start
116+
infer_start = time.time()
104117
fetch_batch_var = exe.run(
105118
program=paddle.static.default_main_program(),
106119
feed=dict(zip(input_data_names, batch_data)),
107120
fetch_list=[var for _, var in fetch_vars.items()])
121+
infer_run_cost += time.time() - infer_start
108122
if batch_id % print_interval == 0:
109123
metric_str = ""
110124
for var_idx, var_name in enumerate(fetch_vars):
@@ -115,11 +129,17 @@ def main(args):
115129
tag="infer/" + var_name,
116130
step=step_num,
117131
value=fetch_batch_var[var_idx][0])
118-
logger.info("epoch: {}, batch_id: {}, ".format(
119-
epoch_id, batch_id) + metric_str + "speed: {:.2f} ins/s".
120-
format(print_interval * batch_size / (time.time(
121-
) - interval_begin)))
132+
logger.info(
133+
"epoch: {}, batch_id: {}, ".format(epoch_id,
134+
batch_id) + metric_str +
135+
"avg_reader_cost: {:.5f} sec, avg_batch_cost: {:.5f} sec, avg_samples: {:.5f}, ips: {:.2f} ins/s".
136+
format(infer_reader_cost / print_interval, (
137+
infer_reader_cost + infer_run_cost) / print_interval,
138+
batch_size, print_interval * batch_size / (
139+
time.time() - interval_begin)))
122140
interval_begin = time.time()
141+
infer_reader_cost = 0.0
142+
infer_run_cost = 0.0
123143
reader_start = time.time()
124144
step_num = step_num + 1
125145

tools/static_trainer.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
def parse_args():
3737
parser = argparse.ArgumentParser("PaddleRec train static script")
3838
parser.add_argument("-m", "--config_yaml", type=str)
39+
parser.add_argument("-o", "--opt", nargs='*', type=str)
3940
args = parser.parse_args()
4041
args.abs_dir = os.path.dirname(os.path.abspath(args.config_yaml))
4142
args.config_yaml = get_abs_model(args.config_yaml)
@@ -49,6 +50,12 @@ def main(args):
4950
config = load_yaml(args.config_yaml)
5051
config["yaml_path"] = args.config_yaml
5152
config["config_abs_dir"] = args.abs_dir
53+
# modify config from command
54+
if args.opt:
55+
for parameter in args.opt:
56+
parameter = parameter.strip()
57+
key, value = parameter.split("=")
58+
config[key] = value
5259
# load static model class
5360
static_model_class = load_static_model_class(config)
5461

@@ -74,9 +81,9 @@ def main(args):
7481
os.environ["CPU_NUM"] = str(config.get("runner.thread_num", 1))
7582
logger.info("**************common.configs**********")
7683
logger.info(
77-
"use_gpu: {}, use_visual: {}, train_data_dir: {}, epochs: {}, print_interval: {}, model_save_path: {}".
78-
format(use_gpu, use_visual, train_data_dir, epochs, print_interval,
79-
model_save_path))
84+
"use_gpu: {}, use_visual: {}, train_batch_size: {}, train_data_dir: {}, epochs: {}, print_interval: {}, model_save_path: {}".
85+
format(use_gpu, use_visual, batch_size, train_data_dir, epochs,
86+
print_interval, model_save_path))
8087
logger.info("**************common.configs**********")
8188

8289
place = paddle.set_device('gpu' if use_gpu else 'cpu')
@@ -179,7 +186,7 @@ def dataloader_train(epoch_id, train_dataloader, input_data_names, fetch_vars,
179186
logger.info(
180187
"epoch: {}, batch_id: {}, ".format(epoch_id,
181188
batch_id) + metric_str +
182-
"avg_reader_cost: {:.5f} sec, avg_batch_cost: {:.5f} sec, avg_samples: {:.5f}, ips: {:.5f} images/sec".
189+
"avg_reader_cost: {:.5f} sec, avg_batch_cost: {:.5f} sec, avg_samples: {:.5f}, ips: {:.5f} ins/s".
183190
format(train_reader_cost / print_interval, (
184191
train_reader_cost + train_run_cost) / print_interval,
185192
total_samples / print_interval, total_samples / (

tools/trainer.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
def parse_args():
5151
parser = argparse.ArgumentParser(description='paddle-rec run')
5252
parser.add_argument("-m", "--config_yaml", type=str)
53+
parser.add_argument("-o", "--opt", nargs='*', type=str)
5354
args = parser.parse_args()
5455
args.abs_dir = os.path.dirname(os.path.abspath(args.config_yaml))
5556
args.config_yaml = get_abs_model(args.config_yaml)
@@ -62,21 +63,28 @@ def main(args):
6263
config = load_yaml(args.config_yaml)
6364
dy_model_class = load_dy_model_class(args.abs_dir)
6465
config["config_abs_dir"] = args.abs_dir
66+
# modify config from command
67+
if args.opt:
68+
for parameter in args.opt:
69+
parameter = parameter.strip()
70+
key, value = parameter.split("=")
71+
config[key] = value
6572

6673
# tools.vars
6774
use_gpu = config.get("runner.use_gpu", True)
6875
use_visual = config.get("runner.use_visual", False)
6976
train_data_dir = config.get("runner.train_data_dir", None)
7077
epochs = config.get("runner.epochs", None)
7178
print_interval = config.get("runner.print_interval", None)
79+
train_batch_size = config.get("runner.train_batch_size", None)
7280
model_save_path = config.get("runner.model_save_path", "model_output")
7381
model_init_path = config.get("runner.model_init_path", None)
7482

7583
logger.info("**************common.configs**********")
7684
logger.info(
77-
"use_gpu: {}, use_visual: {}, train_data_dir: {}, epochs: {}, print_interval: {}, model_save_path: {}".
78-
format(use_gpu, use_visual, train_data_dir, epochs, print_interval,
79-
model_save_path))
85+
"use_gpu: {}, use_visual: {}, train_batch_size: {}, train_data_dir: {}, epochs: {}, print_interval: {}, model_save_path: {}".
86+
format(use_gpu, use_visual, train_batch_size, train_data_dir, epochs,
87+
print_interval, model_save_path))
8088
logger.info("**************common.configs**********")
8189

8290
place = paddle.set_device('gpu' if use_gpu else 'cpu')
@@ -151,7 +159,7 @@ def main(args):
151159
logger.info(
152160
"epoch: {}, batch_id: {}, ".format(
153161
epoch_id, batch_id) + metric_str + tensor_print_str +
154-
" avg_reader_cost: {:.5f} sec, avg_batch_cost: {:.5f} sec, avg_samples: {:.5f}, ips: {:.5f} images/sec".
162+
" avg_reader_cost: {:.5f} sec, avg_batch_cost: {:.5f} sec, avg_samples: {:.5f}, ips: {:.5f} ins/s".
155163
format(train_reader_cost / print_interval, (
156164
train_reader_cost + train_run_cost) / print_interval,
157165
total_samples / print_interval, total_samples / (
@@ -168,8 +176,15 @@ def main(args):
168176
metric_list_name[metric_id] +
169177
": {:.6f},".format(metric_list[metric_id].accumulate()))
170178

179+
tensor_print_str = ""
180+
if tensor_print_dict is not None:
181+
for var_name, var in tensor_print_dict.items():
182+
tensor_print_str += (
183+
"{}:".format(var_name) + str(var.numpy()) + ",")
184+
171185
logger.info("epoch: {} done, ".format(epoch_id) + metric_str +
172-
"epoch time: {:.2f} s".format(time.time() - epoch_begin))
186+
tensor_print_str + " epoch time: {:.2f} s".format(
187+
time.time() - epoch_begin))
173188

174189
save_model(
175190
dy_model, optimizer, model_save_path, epoch_id, prefix='rec')

0 commit comments

Comments
 (0)