#include #include #include #include "backprop.h" #include "omp.h" extern char *strcpy(); extern void exit(); int layer_size = 0; int platform_num = 0; int device_num = 0; int use_gpu = 0; void backprop_face() { BPNN *net; int i; float out_err, hid_err; net = bpnn_create(layer_size, 16, 1); // (16, 1 can not be changed) printf("Input layer size : %d\n", layer_size); load(net); //entering the training kernel, only one iteration printf("Starting training kernel\n"); bpnn_train_kernel(net, &out_err, &hid_err, platform_num, device_num, use_gpu); bpnn_free(net); printf("\nFinish the training for one iteration\n"); } int setup(int argc, char **argv) { int seed; if (argc!=5){ fprintf(stderr, "usage: backprop \n"); exit(0); } layer_size = atoi(argv[1]); if (layer_size%16!=0){ fprintf(stderr, "The number of input points must be divided by 16\n"); exit(0); } platform_num = atoi(argv[2]); device_num = atoi(argv[3]); use_gpu = atoi(argv[4]); seed = 7; bpnn_initialize(seed); backprop_face(); exit(0); }