| 18 | #include <limits> |
| 19 | |
| 20 | static void saveInputOutputs(const MNN::Express::Module::Info* info, std::vector<MNN::Express::VARP> inputs, |
| 21 | std::vector<MNN::Express::VARP> outputs, const std::string& outputDir) { |
| 22 | MNN_ASSERT(info->inputNames.size() == inputs.size()); |
| 23 | MNN_ASSERT(info->outputNames.size() == outputs.size()); |
| 24 | for (int i = 0; i < info->inputNames.size(); ++i) { |
| 25 | inputs[i].fix(MNN::Express::VARP::CONSTANT); |
| 26 | inputs[i]->setName(info->inputNames[i]); |
| 27 | } |
| 28 | for (int i = 0; i < info->outputNames.size(); ++i) { |
| 29 | outputs[i]->setName(info->outputNames[i]); |
| 30 | } |
| 31 | |
| 32 | std::string inputPath = MNNFilePathConcat(outputDir, "input.mnn"); |
| 33 | std::string outputPath = MNNFilePathConcat(outputDir, "output.mnn"); |
| 34 | MNN::Express::Variable::save(inputs, inputPath.c_str()); |
| 35 | MNN::Express::Variable::save(outputs, outputPath.c_str()); |
| 36 | MNN_PRINT("Successfully generate %s and %s.\n", inputPath.c_str(), outputPath.c_str()); |
| 37 | } |
| 38 | |
| 39 | int main(int argc, char* argv[]) { |
| 40 | if (argc < 4) { |