74 arser.add_argument(
"--model")
75 .type(arser::DataType::STR)
77 .help(
"Path to model.circle file");
78 arser.add_argument(
"--input_prefix")
79 .type(arser::DataType::STR)
80 .help(
"Prefix for input files (generates random inputs if not provided)");
81 arser.add_argument(
"--output_prefix").type(arser::DataType::STR).help(
"Prefix for output files");
85 arser.parse(argc, argv);
87 catch (
const std::runtime_error &err)
89 std::cerr << err.what() << std::endl;
94 const auto filename =
arser.get<std::string>(
"--model");
95 std::string input_prefix;
96 std::string output_prefix;
98 if (
arser[
"--input_prefix"])
100 input_prefix =
arser.get<std::string>(
"--input_prefix");
102 if (
arser[
"--output_prefix"])
104 output_prefix =
arser.get<std::string>(
"--output_prefix");
106 const bool auto_input = !
arser[
"--input_prefix"];
107 int32_t num_inputs = 1;
109 std::ifstream file(filename, std::ios::binary | std::ios::in);
112 std::string errmsg =
"Failed to open file";
113 throw std::runtime_error(errmsg.c_str());
116 file.seekg(0, std::ios::end);
117 auto fileSize = file.tellg();
118 file.seekg(0, std::ios::beg);
124 file.read(model_data.data(), fileSize);
127 std::string errmsg =
"Failed to read file";
128 throw std::runtime_error(errmsg.c_str());
134 interpreter.importModel(model_data.data(), config);
136 num_inputs = interpreter.getNumberOfInputs();
141 int num_inference = 1;
142 for (
int j = 0; j < num_inference; ++j)
145 interpreter.allocateInputs();
146 for (int32_t i = 0; i < num_inputs; i++)
148 auto input_data =
reinterpret_cast<char *
>(interpreter.getInputDataAt(i));
149 size_t input_size = interpreter.getInputSizeAt(i);
153 generateRandomData(input_data, input_size);
157 readDataFromFile(input_prefix + std::to_string(i), input_data, input_size);
162 interpreter.run(config);
167 for (
int i = 0; i < num_outputs; i++)
169 auto data = interpreter.getOutputDataAt(i);
170 size_t output_size = interpreter.getOutputSizeAt(i);
172 if (
arser[
"--output_prefix"])
174 writeDataToFile(output_prefix + std::to_string(i),
reinterpret_cast<char *
>(data),