(args)
| 113 | |
| 114 | |
| 115 | def main(args): |
| 116 | predictor, pred_config = init_predictor(args) |
| 117 | place = paddle.set_device('gpu' if args.use_gpu else 'cpu') |
| 118 | args.place = place |
| 119 | input_names = predictor.get_input_names() |
| 120 | output_names = predictor.get_output_names() |
| 121 | test_dataloader = create_data_loader(args) |
| 122 | |
| 123 | if args.benchmark: |
| 124 | import auto_log |
| 125 | pid = os.getpid() |
| 126 | autolog = auto_log.AutoLogger( |
| 127 | model_name=args.model_name, |
| 128 | model_precision=args.precision, |
| 129 | batch_size=args.batchsize, |
| 130 | data_shape="dynamic", |
| 131 | save_path=args.save_log_path, |
| 132 | inference_config=pred_config, |
| 133 | pids=pid, |
| 134 | process_name=None, |
| 135 | gpu_ids=0, |
| 136 | time_keys=[ |
| 137 | 'preprocess_time', 'inference_time', 'postprocess_time' |
| 138 | ]) |
| 139 | |
| 140 | for batch_id, batch_data in enumerate(test_dataloader): |
| 141 | batch_data[1] = batch_data[1][0] |
| 142 | name_data_pair = dict(zip(input_names, batch_data)) |
| 143 | if args.benchmark: |
| 144 | autolog.times.start() |
| 145 | for name in input_names: |
| 146 | input_tensor = predictor.get_input_handle(name) |
| 147 | input_tensor.copy_from_cpu(name_data_pair[name].numpy()) |
| 148 | if args.benchmark: |
| 149 | autolog.times.stamp() |
| 150 | predictor.run() |
| 151 | for name in output_names: |
| 152 | output_tensor = predictor.get_output_handle(name) |
| 153 | output_data = output_tensor.copy_to_cpu() |
| 154 | results = [] |
| 155 | results_type = [] |
| 156 | if args.benchmark: |
| 157 | autolog.times.stamp() |
| 158 | for name in output_names: |
| 159 | results_type.append(output_tensor.type()) |
| 160 | results.append(output_data[0]) |
| 161 | if args.benchmark: |
| 162 | autolog.times.end(stamp=True) |
| 163 | print(results) |
| 164 | |
| 165 | if args.benchmark: |
| 166 | autolog.report() |
| 167 | |
| 168 | |
| 169 | if __name__ == '__main__': |
no test coverage detected