facetrain.c 997 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include "backprop.h"
  5. #include "omp.h"
  6. extern char *strcpy();
  7. extern void exit();
  8. int layer_size = 0;
  9. void backprop_face()
  10. {
  11. BPNN *net;
  12. int i;
  13. float out_err, hid_err;
  14. net = bpnn_create(layer_size, 16, 1); // (16, 1 can not be changed)
  15. printf("Input layer size : %d\n", layer_size);
  16. load(net);
  17. //entering the training kernel, only one iteration
  18. printf("Starting training kernel\n");
  19. bpnn_train_kernel(net, &out_err, &hid_err);
  20. bpnn_free(net);
  21. printf("\nFinish the training for one iteration\n");
  22. }
  23. int setup(int argc, char **argv)
  24. {
  25. int seed;
  26. if (argc!=2){
  27. fprintf(stderr, "usage: backprop <num of input elements>\n");
  28. exit(0);
  29. }
  30. layer_size = atoi(argv[1]);
  31. if (layer_size%16!=0){
  32. fprintf(stderr, "The number of input points must be divided by 16\n");
  33. exit(0);
  34. }
  35. seed = 7;
  36. bpnn_initialize(seed);
  37. backprop_face();
  38. exit(0);
  39. }