11 for (i = 0; i < n; ++i){
22 for(i = 0; i < n; ++i){
23 if(delta[i] > mean + thresh*sqrt(var)) delta[i] = output[i];
32 net->
n = max_layer + 1;
34 int dx = rand()%16 - 8;
35 int dy = rand()%16 - 8;
49 net->delta_gpu = cuda_make_array(delta.
data, im.
w*im.
h*im.
c);
52 forward_network_gpu(net);
55 cuda_pull_array(last.delta_gpu, last.
delta, last.
outputs);
57 cuda_push_array(last.delta_gpu, last.
delta, last.
outputs);
59 backward_network_gpu(net);
61 cuda_pull_array(net->delta_gpu, delta.
data, im.
w*im.
h*im.
c);
62 cuda_free(net->delta_gpu);
65 printf(
"\nnet: %d %d %d im: %d %d %d\n", net->
w, net->
h, net->
inputs, im.
w, im.
h, im.
c);
118 for(k = 0; k < recon.
c; ++k){
119 for(j = 0; j < recon.
h; ++j){
120 for(i = 0; i < recon.
w; ++i){
121 int out_index = i + recon.
w*(j + recon.
h*k);
122 for(jj = j-num; jj <= j + num && jj < recon.
h; ++jj){
123 if (jj < 0)
continue;
124 for(ii = i-num; ii <= i + num && ii < recon.
w; ++ii){
125 if (ii < 0)
continue;
126 int in_index = ii + recon.
w*(jj + recon.
h*k);
127 update.
data[out_index] += lambda * (recon.
data[in_index] - recon.
data[out_index]);
138 for (iter = 0; iter < iters; ++iter) {
143 cuda_push_array(net->input_gpu, recon.
data, recon.
w*recon.
h*recon.
c);
145 net->delta_gpu = cuda_make_array(delta.
data, delta.
w*delta.
h*delta.
c);
147 forward_network_gpu(net);
148 cuda_push_array(l.delta_gpu, features, l.
outputs);
150 backward_network_gpu(net);
152 cuda_pull_array(net->delta_gpu, delta.
data, delta.
w*delta.
h*delta.
c);
154 cuda_free(net->delta_gpu);
158 net->
truth = features;
172 printf(
"mag: %f\n", mag);
292 fprintf(stderr,
"usage: %s %s [cfg] [weights] [image] [layer] [options! (optional)]\n", argv[0], argv[1]);
297 char *weights = argv[3];
298 char *input = argv[4];
299 int max_layer = atoi(argv[5]);
313 int reconstruct =
find_arg(argc, argv,
"-reconstruct");
314 int smooth_size =
find_int_arg(argc, argv,
"-smooth", 1);
324 if(im.
w > 512 || im.
h > 512){
325 if(im.
w > im.
h) scale = 512.0/im.
w;
326 else scale = 512.0/im.
h;
353 printf(
"%d features\n", out_im.
w*out_im.
h*out_im.
c);
355 features = out_im.
data;
370 for(e = 0; e < rounds; ++e){
371 fprintf(stderr,
"Iteration: ");
373 for(n = 0; n < iters; ++n){
374 fprintf(stderr,
"%d, ", n);
381 int layer = max_layer + rand()%range - range/2;
382 int octave = rand()%octaves;
383 optimize_picture(net, im, layer, 1/pow(1.33333333, octave), rate, thresh, norm);
386 fprintf(stderr,
"done\n");
394 sprintf(buff,
"%s/%s_%s_%d_%06d",prefix, imbase, cfgbase, max_layer, e);
396 sprintf(buff,
"%s_%s_%d_%06d",imbase, cfgbase, max_layer, e);
398 printf(
"%d %s\n", e, buff);
407 image crop =
crop_image(im, im.
w * (1. - zoom)/2., im.
h * (1.-zoom)/2., im.
w*zoom, im.
h*zoom);
void normalize_array(float *a, int n)
float abs_mean(float *x, int n)
image resize_image(image im, int w, int h)
image copy_image(image p)
int find_arg(int argc, char *argv[], char *arg)
float variance_array(float *a, int n)
void optimize_picture(network *net, image orig, int max_layer, float scale, float rate, float thresh, int norm)
void set_batch_network(network *net, int b)
void run_nightmare(int argc, char **argv)
int show_image(image p, const char *name, int ms)
char * find_char_arg(int argc, char **argv, char *arg, char *def)
char * basecfg(char *cfgfile)
image grayscale_image(image im)
layer get_network_output_layer(network *net)
void reconstruct_picture(network *net, float *features, image recon, image update, float rate, float momentum, float lambda, int smooth_size, int iters)
void axpy_gpu(int N, float ALPHA, float *X, int INCX, float *Y, int INCY)
void save_image(image p, const char *name)
void fill_image(image m, float s)
image get_network_image(network *net)
int resize_network(network *net, int w, int h)
float mean_array(float *a, int n)
image rotate_image(image m, float rad)
void forward_network(network *net)
void axpy_cpu(int N, float ALPHA, float *X, int INCX, float *Y, int INCY)
image load_image_color(char *filename, int w, int h)
float find_float_arg(int argc, char **argv, char *arg, float def)
void constrain_image(image im)
void backward_network(network *net)
void scal_cpu(int N, float ALPHA, float *X, int INCX)
void smooth(image recon, image update, float lambda, int num)
void copy_gpu(int N, float *X, int INCX, float *Y, int INCY)
int find_int_arg(int argc, char **argv, char *arg, int def)
network * load_network(char *cfg, char *weights, int clear)
image crop_image(image im, int dx, int dy, int w, int h)
void calculate_loss(float *output, float *delta, int n, float thresh)
void copy_cpu(int N, float *X, int INCX, float *Y, int INCY)
void zero_objectness(layer l)
float mag_array(float *a, int n)