facetrain.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. int platform_num = 0;
  10. int device_num = 0;
  11. int use_gpu = 0;
  12. void backprop_face()
  13. {
  14. BPNN *net;
  15. int i;
  16. float out_err, hid_err;
  17. net = bpnn_create(layer_size, 16, 1); // (16, 1 can not be changed)
  18. printf("Input layer size : %d\n", layer_size);
  19. load(net);
  20. //entering the training kernel, only one iteration
  21. printf("Starting training kernel\n");
  22. bpnn_train_kernel(net, &out_err, &hid_err, platform_num, device_num, use_gpu);
  23. bpnn_free(net);
  24. printf("\nFinish the training for one iteration\n");
  25. }
  26. int setup(int argc, char **argv)
  27. {
  28. int seed;
  29. if (argc!=5){
  30. fprintf(stderr, "usage: backprop <num of input elements> <platform> <device> <type>\n");
  31. exit(0);
  32. }
  33. layer_size = atoi(argv[1]);
  34. if (layer_size%16!=0){
  35. fprintf(stderr, "The number of input points must be divided by 16\n");
  36. exit(0);
  37. }
  38. platform_num = atoi(argv[2]);
  39. device_num = atoi(argv[3]);
  40. use_gpu = atoi(argv[4]);
  41. seed = 7;
  42. bpnn_initialize(seed);
  43. backprop_face();
  44. exit(0);
  45. }