| | |
| | | #include "utils.h" |
| | | #include "cuda.h" |
| | | #include "blas.h" |
| | | #include "connected_layer.h" |
| | | |
| | | #ifdef OPENCV |
| | | #include "opencv2/highgui/highgui_c.h" |
| | |
| | | extern void run_compare(int argc, char **argv); |
| | | extern void run_classifier(int argc, char **argv); |
| | | extern void run_char_rnn(int argc, char **argv); |
| | | extern void run_vid_rnn(int argc, char **argv); |
| | | extern void run_tag(int argc, char **argv); |
| | | extern void run_cifar(int argc, char **argv); |
| | | extern void run_go(int argc, char **argv); |
| | | extern void run_art(int argc, char **argv); |
| | | |
| | | void change_rate(char *filename, float scale, float add) |
| | | { |
| | |
| | | save_weights(sum, outfile); |
| | | } |
| | | |
| | | void operations(char *cfgfile) |
| | | { |
| | | gpu_index = -1; |
| | | network net = parse_network_cfg(cfgfile); |
| | | int i; |
| | | long ops = 0; |
| | | for(i = 0; i < net.n; ++i){ |
| | | layer l = net.layers[i]; |
| | | if(l.type == CONVOLUTIONAL){ |
| | | ops += 2 * l.n * l.size*l.size*l.c * l.out_h*l.out_w; |
| | | } else if(l.type == CONNECTED){ |
| | | ops += 2 * l.inputs * l.outputs; |
| | | } |
| | | } |
| | | printf("Floating Point Operations: %ld\n", ops); |
| | | } |
| | | |
| | | void partial(char *cfgfile, char *weightfile, char *outfile, int max) |
| | | { |
| | | gpu_index = -1; |
| | |
| | | { |
| | | gpu_index = -1; |
| | | network net = parse_network_cfg(cfgfile); |
| | | if(weightfile){ |
| | | if (weightfile) { |
| | | load_weights(&net, weightfile); |
| | | } |
| | | int i; |
| | | for(i = 0; i < net.n; ++i){ |
| | | for (i = 0; i < net.n; ++i) { |
| | | layer l = net.layers[i]; |
| | | if(l.type == CONVOLUTIONAL){ |
| | | if (l.type == CONVOLUTIONAL && l.batch_normalize) { |
| | | denormalize_convolutional_layer(l); |
| | | net.layers[i].batch_normalize=0; |
| | | } |
| | | if (l.type == CONNECTED && l.batch_normalize) { |
| | | denormalize_connected_layer(l); |
| | | net.layers[i].batch_normalize=0; |
| | | } |
| | | if (l.type == GRU && l.batch_normalize) { |
| | | denormalize_connected_layer(*l.input_z_layer); |
| | | denormalize_connected_layer(*l.input_r_layer); |
| | | denormalize_connected_layer(*l.input_h_layer); |
| | | denormalize_connected_layer(*l.state_z_layer); |
| | | denormalize_connected_layer(*l.state_r_layer); |
| | | denormalize_connected_layer(*l.state_h_layer); |
| | | l.input_z_layer->batch_normalize = 0; |
| | | l.input_r_layer->batch_normalize = 0; |
| | | l.input_h_layer->batch_normalize = 0; |
| | | l.state_z_layer->batch_normalize = 0; |
| | | l.state_r_layer->batch_normalize = 0; |
| | | l.state_h_layer->batch_normalize = 0; |
| | | net.layers[i].batch_normalize=0; |
| | | } |
| | | } |
| | | save_weights(net, outfile); |
| | | } |
| | |
| | | average(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "yolo")){ |
| | | run_yolo(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "cifar")){ |
| | | run_cifar(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "go")){ |
| | | run_go(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "rnn")){ |
| | | run_char_rnn(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "vid")){ |
| | | run_vid_rnn(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "coco")){ |
| | | run_coco(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "classifier")){ |
| | | run_classifier(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "art")){ |
| | | run_art(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "tag")){ |
| | | run_tag(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "compare")){ |
| | | run_compare(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "dice")){ |
| | | run_dice(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "writing")){ |
| | | run_writing(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "3d")){ |
| | | composite_3d(argv[2], argv[3], argv[4]); |
| | | } else if (0 == strcmp(argv[1], "test")){ |
| | | test_resize(argv[2]); |
| | | } else if (0 == strcmp(argv[1], "captcha")){ |
| | |
| | | normalize_net(argv[2], argv[3], argv[4]); |
| | | } else if (0 == strcmp(argv[1], "rescale")){ |
| | | rescale_net(argv[2], argv[3], argv[4]); |
| | | } else if (0 == strcmp(argv[1], "ops")){ |
| | | operations(argv[2]); |
| | | } else if (0 == strcmp(argv[1], "partial")){ |
| | | partial(argv[2], argv[3], argv[4], atoi(argv[5])); |
| | | } else if (0 == strcmp(argv[1], "average")){ |
| | | average(argc, argv); |
| | | } else if (0 == strcmp(argv[1], "stacked")){ |
| | | stacked(argv[2], argv[3], argv[4]); |
| | | } else if (0 == strcmp(argv[1], "visualize")){ |