This commit is contained in:
Qiea
2024-11-13 12:30:23 +08:00
parent 5ee5304676
commit 1c0f3b676f
7 changed files with 63 additions and 47 deletions

View File

@@ -169,13 +169,14 @@ float* hidden(const float* input_matrix){
return affine1_rslt;
}
float* output(const float* input_matrix){
float* output(Model model_w, const float* input_matrix){
u8 num = model_w.num_kernels;
float affine2_temp; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ洢<DAB4><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>
float *affine2_rslt = (float *) mymalloc(SRAMEX,sizeof(float)*7);
memset(affine2_rslt, 0, sizeof(float)*7);
float *affine2_rslt = (float *) mymalloc(SRAMEX,(sizeof(float)*num));
memset(affine2_rslt, 0, sizeof(float)*num);
// <20><><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for(int n=0; n<7; n++)
for(int n=0; n<num; n++)
{
affine2_temp = 0; // <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>Ϊ0
@@ -256,10 +257,10 @@ float* generateMatrix(Model model, const float* value)
return CNN_data;
}
float calculate_probabilities(float *input_array)
float calculate_probabilities(Model model_w, float *input_array)
{
float sum = 0;
u8 input_num = 7;
u8 input_num = model_w.num_kernels;
float *result = (float *) mymalloc(SRAMEX,sizeof(float)*input_num);
memset(result, 0, sizeof(float)*input_num);
@@ -297,8 +298,8 @@ float calculate_probabilities(float *input_array)
}
u8 calculate_layer(float *input_array){
u8 input_num = 7;
u8 calculate_layer(Model model_w, float *input_array){
u8 input_num = model_w.num_kernels;
u8 predict_num = 0;
float max_temp = -100;
for(int n=0; n<input_num; n++)
@@ -309,8 +310,8 @@ u8 calculate_layer(float *input_array){
predict_num = n; // <20><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
}
//print_rslt(input_array,7,7);
return predict_num+1;
print_rslt(input_array,input_num,input_num);
return predict_num+0;
}
@@ -320,9 +321,14 @@ void cnn_run(){
if (check_threshold(data,&value[0])){
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>100 * 100 <20><><EFBFBD><EFBFBD>
float* _data = generateMatrix(data,&value[0]);
char kind[50];
DEBUG_PRINTF("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ磡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:%f ƽ<><C6BD>ֵ:%f <20><>׼<EFBFBD><D7BC>:%f\r\n",value[0],value[1],value[2]);
DEBUG_PRINTF("<EFBFBD><EFBFBD>ԭʼ<EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>SD<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n");
SDRAM_TO_SD();
char* _uuid = uuid();
CSTX_4G_RegALiYunIOT(1); //<2F><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5>ϱ<EFBFBD>
send_blocks(_data,_uuid);
//<2F><>һ<EFBFBD><EFBFBD><E3A3BA><EFBFBD><EFBFBD>102 * 102
@@ -367,10 +373,15 @@ void cnn_run(){
DEBUG_PRINTF("<EFBFBD><EFBFBD><EFBFBD>IJ㿪ʼ\n");
float* affine1_rslt = hidden(pool_rslt_3);
DEBUG_PRINTF("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ\r\n");
float* affine2_rslt = output(affine1_rslt);
float* affine2_rslt = output(fc2_weight, affine1_rslt);
printf("<EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>%f\n",calculate_probabilities(affine2_rslt));
printf("Label is:%d\r\n",calculate_layer(affine2_rslt));
DEBUG_PRINTF("<EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>%f\r\n",calculate_probabilities(fc2_weight, affine2_rslt));
DEBUG_PRINTF("Label is:%d\r\n",calculate_layer(fc2_weight, affine2_rslt));
snprintf(kind, 50,"UUID:%s P:%f Label:%d", _uuid, calculate_probabilities(fc2_weight, affine2_rslt), calculate_layer(fc2_weight, affine2_rslt));
CSTX_4G_ALiYunIOTSenddata_string(kind,"kind_string");
CSTX_4G_RegALiYunIOT(0); //<2F><><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>ʱ<EFBFBD><CAB1> <20>ź<EFBFBD>
myfree(SRAMEX,pool_rslt_3);
pool_rslt_3 = NULL;
@@ -378,7 +389,7 @@ void cnn_run(){
affine1_rslt = NULL;
myfree(SRAMEX,affine2_rslt);
affine2_rslt = NULL;
} else{
DEBUG_PRINTF("δ<EFBFBD>ŵ磡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:%f ƽ<><C6BD>ֵ:%f <20><>׼<EFBFBD><D7BC>:%f\r\n",value[0],value[1],value[2]);
}