1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #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 <num of input elements> <platform> <device> <type>\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);
- }
|