diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h b/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h index bbbdff5e363cca9d82f065a3972368632cfef726..c7ab713823020c2fe8022839e91955d414457116 100644 --- a/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h +++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/include/utils.h @@ -217,7 +217,8 @@ void* readInputTensor(char* file_name, int data_type, int dim1_size, int dim2_si -struct Tensor* readTrainedWeights(char* file_name, int data_type, int dim1_size, int dim2_size, +struct Tensor* readTrainedWeights(char* file_name, int data_type, + int dim1_size, int dim2_size, int dim3_size, int dim4_size){ // FIXIT: Don't assume floating point types @@ -236,7 +237,9 @@ struct Tensor* readTrainedWeights(char* file_name, int data_type, int dim1_size, fseek(file, file_header_size, SEEK_CUR); // Skipping the file header size_t bytes_read = fread(tensor_data, 1, size_in_bytes, file); - //printf("tensor_data[%d] = %f \n", num_elems-1, tensor_data[num_elems-1]); + for(unsigned i = 0 ; i < 40; i++){ + printf("tensor_data[%d] = %f \n", i, tensor_data[i]); + } struct Tensor* weights = (struct Tensor*) create4DTensor(data_type, nchw, dim1_size, dim2_size, dim3_size, dim4_size); @@ -250,7 +253,7 @@ struct Tensor* readTrainedWeights(char* file_name, int data_type, int dim1_size, uint8_t* readLabels(char* labels_file, int num_labels){ - int file_header_size = 8; + //-- int file_header_size = 8; uint8_t* labels = (uint8_t*) malloc(sizeof(uint8_t) * num_labels); FILE* file = fopen(labels_file, "rb"); if(file == NULL){ @@ -258,8 +261,13 @@ uint8_t* readLabels(char* labels_file, int num_labels){ abort(); } - fseek(file, file_header_size, SEEK_CUR); // Skipping the file header + //-- fseek(file, file_header_size, SEEK_CUR); // Skipping the file header size_t bytes_read = fread(labels, 1, sizeof(uint8_t) * num_labels, file); + + for(unsigned int i = 0 ; i < 20; i++){ + printf("labels[%d] = %u \n", i, labels[i]); + } + printf("--labels bytes_read = %d \n", bytes_read); return labels; } @@ -309,6 +317,8 @@ void computeAccuracy(char* labels_file, int num_labels, void* result_ptr){ void computeAccuracy2(uint8_t* labels, int num_labels, void* result_ptr){ + unsigned num_zeros = 0; + struct Tensor* result = (struct Tensor*) result_ptr; //uint8_t* labels = readLabels(labels_file, num_labels); @@ -324,12 +334,16 @@ void computeAccuracy2(uint8_t* labels, int num_labels, void* result_ptr){ } //printf("chosen = %d, label = %d \n", chosen, labels[i]); + if(labels[i] == 0) + num_zeros++; + if(chosen != labels[i]) num_errors++; } float accuracy = ((batch_dim - num_errors) * 1.0 / batch_dim * 1.0) * 100.0; printf("****** Accuracy = %f \n\n", accuracy); + printf("****** Zero class labels %d \n", num_zeros); FILE* fp = fopen("final_accuracy", "w+"); diff --git a/llvm/projects/hpvm-tensor-rt/model_params/lenet_params/datasets/t10k-labels-idx1-ubyte b/llvm/projects/hpvm-tensor-rt/model_params/lenet_params/datasets/t10k-labels-idx1-ubyte index d1c3a970612bbd2df47a3c0697f82bd394abc450..5e1f3881897f4729d6d90ff208a08ccdabb8fe7c 100644 Binary files a/llvm/projects/hpvm-tensor-rt/model_params/lenet_params/datasets/t10k-labels-idx1-ubyte and b/llvm/projects/hpvm-tensor-rt/model_params/lenet_params/datasets/t10k-labels-idx1-ubyte differ