Skip to content

Commit 2f9a5a2

Browse files
committed
add analyzer_face_tester
1 parent 8ac2242 commit 2f9a5a2

File tree

3 files changed

+33
-23
lines changed

3 files changed

+33
-23
lines changed

paddle/fluid/inference/tests/api/analyzer_resnet50_tester.cc

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,7 @@ void SetConfig(AnalysisConfig *cfg) {
3030
}
3131

3232
void SetInput(std::vector<std::vector<PaddleTensor>> *inputs) {
33-
PADDLE_ENFORCE_EQ(FLAGS_test_all_data, 0, "Only have single batch of data.");
34-
35-
PaddleTensor input;
36-
// channel=3, height/width=318
37-
std::vector<int> shape({FLAGS_batch_size, 3, 318, 318});
38-
input.shape = shape;
39-
input.dtype = PaddleDType::FLOAT32;
40-
41-
// fill input data, for profile easily, do not use random data here.
42-
size_t size = FLAGS_batch_size * 3 * 318 * 318;
43-
input.data.Resize(size * sizeof(float));
44-
float *input_data = static_cast<float *>(input.data.data());
45-
for (size_t i = 0; i < size; i++) {
46-
*(input_data + i) = static_cast<float>(i) / size;
47-
}
48-
49-
std::vector<PaddleTensor> input_slots;
50-
input_slots.assign({input});
51-
(*inputs).emplace_back(input_slots);
33+
SetFakeImageInput(inputs, FLAGS_infer_model);
5234
}
5335

5436
// Easy for profiling independently.

paddle/fluid/inference/tests/api/tester_helper.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include "paddle/fluid/inference/api/analysis_predictor.h"
2626
#include "paddle/fluid/inference/api/helper.h"
2727
#include "paddle/fluid/inference/api/paddle_inference_pass.h"
28+
#include "paddle/fluid/inference/tests/test_helper.h"
2829
#include "paddle/fluid/platform/profiler.h"
2930

3031
DEFINE_string(infer_model, "", "model path");
@@ -105,6 +106,35 @@ std::unordered_map<std::string, int> GetFuseStatis(PaddlePredictor *predictor,
105106
return fuse_statis;
106107
}
107108

109+
void SetFakeImageInput(std::vector<std::vector<PaddleTensor>> *inputs,
110+
const std::string &dirname,
111+
const bool is_combined = true) {
112+
// Set fake_image_data
113+
PADDLE_ENFORCE_EQ(FLAGS_test_all_data, 0, "Only have single batch of data.");
114+
std::vector<std::vector<int64_t>> feed_target_shapes =
115+
GetFeedTargetShapes(dirname, is_combined);
116+
int dim1 = feed_target_shapes[0][1];
117+
int dim2 = feed_target_shapes[0][2];
118+
int dim3 = feed_target_shapes[0][3];
119+
120+
PaddleTensor input;
121+
std::vector<int> shape({FLAGS_batch_size, dim1, dim2, dim3});
122+
input.shape = shape;
123+
input.dtype = PaddleDType::FLOAT32;
124+
125+
// fill input data, for profile easily, do not use random data here.
126+
size_t size = FLAGS_batch_size * dim1 * dim2 * dim3;
127+
input.data.Resize(size * sizeof(float));
128+
float *input_data = static_cast<float *>(input.data.data());
129+
for (size_t i = 0; i < size; i++) {
130+
*(input_data + i) = static_cast<float>(i) / size;
131+
}
132+
133+
std::vector<PaddleTensor> input_slots;
134+
input_slots.assign({input});
135+
(*inputs).emplace_back(input_slots);
136+
}
137+
108138
void TestOneThreadPrediction(
109139
const AnalysisConfig &config,
110140
const std::vector<std::vector<PaddleTensor>> &inputs,

paddle/fluid/inference/tests/test_helper.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ std::unique_ptr<paddle::framework::ProgramDesc> InitProgram(
101101
// Hard-coding the file names of program and parameters in unittest.
102102
// The file names should be consistent with that used in Python API
103103
// `fluid.io.save_inference_model`.
104-
std::string prog_filename = "__model_combined__";
105-
std::string param_filename = "__params_combined__";
104+
std::string prog_filename = "model";
105+
std::string param_filename = "params";
106106
inference_program =
107107
paddle::inference::Load(executor, scope, dirname + "/" + prog_filename,
108108
dirname + "/" + param_filename);
@@ -261,5 +261,3 @@ void TestInference(const std::string& dirname,
261261

262262
delete scope;
263263
}
264-
265-
USE_PASS(graph_to_program_pass);

0 commit comments

Comments
 (0)