save
This commit is contained in:
@@ -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]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user