我目前使用的是ONNX的模型,有两个输入,然后把他转换成 nb模型,转换之后,使用 image_classify_224*224 的示例运行报错。
错误如下
E NN_SDK: [amlnn_init:718]verifygraph fail
E NN_SDK: [amlnn_init:749]amlnn_init fail
E NN_SDK: [aml_module_create:62]amlnn_init is fail
以下两个方法做了修改:
int create_network(char *nbfile){
memset(&config,0,sizeof(aml_config));
config.path = (const char *)nbfile;
config.nbgType = NN_NBG_FILE;
config.modelType = ONNX;
std::cout<<"path:"<<config.path<<std::endl;
context = aml_module_create(&config);
return 0;
}
int preprocess_network(char *jpegpath, char *jpegpath2){
int ret = 0;
nn_input inData;
uint8_t* rawdata = (uint8_t*)malloc(287*287*3* sizeof(uint8_t));
get_input_data_cv(jpegpath, rawdata, 287, 287);
inData.input_index = 0; //this value is index of input,begin from 0
inData.size = 287*287*3;
inData.input = rawdata;
inData.input_type = RGB24_RAW_DATA;
ret = aml_module_input_set(context,&inData);
nn_input inData2;
uint8_t* rawdata2 = (uint8_t*)malloc(127*127*3* sizeof(uint8_t));
get_input_data_cv(jpegpath2, rawdata2, 127, 127);
inData2.input_index = 1; //this value is index of input,begin from 0
inData2.size = 127*127*3;
inData2.input = rawdata;
inData2.input_type = RGB24_RAW_DATA;
ret = aml_module_input_set(context,&inData2);
if(rawdata != NULL){
free(rawdata);
rawdata = NULL;
free(rawdata2);
rawdata2 = NULL;
return -1;
}
return ret;
}