void normalize_array(float *a, int n) { int i; float mu = mean_array(a,n); float sigma = sqrt(variance_array(a,n)); for(i = 0; i < n; ++i){ a[i] = (a[i] - mu)/sigma; } mu = mean_array(a,n); sigma = sqrt(variance_array(a,n)); }
void calculate_loss(float *output, float *delta, int n, float thresh) { int i; float mean = mean_array(output, n); float var = variance_array(output, n); for(i = 0; i < n; ++i){ if(delta[i] > mean + thresh*sqrt(var)) delta[i] = output[i]; else delta[i] = 0; } }
void print_network(network net) { int i,j; for(i = 0; i < net.n; ++i){ layer l = net.layers[i]; float *output = l.output; int n = l.outputs; float mean = mean_array(output, n); float vari = variance_array(output, n); fprintf(stderr, "Layer %d - Mean: %f, Variance: %f\n",i,mean, vari); if(n > 100) n = 100; for(j = 0; j < n; ++j) fprintf(stderr, "%f, ", output[j]); if(n == 100)fprintf(stderr,".....\n"); fprintf(stderr, "\n"); } }
void print_statistics(float *a, int n) { float m = mean_array(a, n); float v = variance_array(a, n); printf("MSE: %.6f, Mean: %.6f, Variance: %.6f\n", mse_array(a, n), m, v); }