MCPcopy Create free account
hub / github.com/OpenPPL/ppl.nn / SaveInputsOneByOne

Function SaveInputsOneByOne

tools/pplnn.cc:837–873  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

835}
836
837static bool SaveInputsOneByOne(const Runtime* runtime) {
838 for (uint32_t c = 0; c < runtime->GetInputCount(); ++c) {
839 auto t = runtime->GetInputTensor(c);
840 auto shape = t->GetShape();
841
842 auto bytes = shape->CalcBytesIncludingPadding();
843 vector<char> buffer(bytes);
844
845 ppl::nn::TensorShape src_desc = *t->GetShape();
846 src_desc.SetDataFormat(DATAFORMAT_NDARRAY);
847 auto status = t->ConvertToHost(buffer.data(), src_desc);
848 if (status != RC_SUCCESS) {
849 LOG(ERROR) << "convert data failed: " << GetRetCodeStr(status);
850 return false;
851 }
852
853 const char* data_type_str = FindDataTypeStr(shape->GetDataType());
854 if (!data_type_str) {
855 LOG(ERROR) << "unsupported data type[" << GetDataTypeStr(shape->GetDataType()) << "]";
856 return false;
857 }
858
859 char name_prefix[32];
860 sprintf(name_prefix, "pplnn_input_%05u_", c);
861 const string in_file_name = g_flag_save_data_dir + "/" + string(name_prefix) + t->GetName() + "-" +
862 GetDimsStr(t) + "-" + string(data_type_str) + ".dat";
863 ofstream ofs(in_file_name, ios_base::out | ios_base::binary | ios_base::trunc);
864 if (!ofs.is_open()) {
865 LOG(ERROR) << "save input file[" << in_file_name << "] failed.";
866 return false;
867 }
868
869 ofs.write(buffer.data(), bytes);
870 }
871
872 return true;
873}
874
875static bool SaveInputsAllInOne(const Runtime* runtime) {
876 const string in_file_name = g_flag_save_data_dir + "/pplnn_input.dat";

Callers 1

mainFunction · 0.70

Calls 7

GetInputTensorMethod · 0.80
FindDataTypeStrFunction · 0.70
GetDimsStrFunction · 0.70
GetInputCountMethod · 0.45
GetShapeMethod · 0.45
ConvertToHostMethod · 0.45
GetNameMethod · 0.45

Tested by

no test coverage detected