mirror of
https://github.com/pjreddie/darknet.git
synced 2023-08-10 21:13:14 +03:00
merged
This commit is contained in:
commit
3839d29309
@ -10,9 +10,9 @@ import darknet as dn
|
||||
import pdb
|
||||
|
||||
dn.set_gpu(0)
|
||||
net = dn.load_net("cfg/tiny-yolo.cfg", "tiny-yolo.weights", 0)
|
||||
meta = dn.load_meta("cfg/coco.data")
|
||||
r = dn.detect(net, meta, "data/dog.jpg")
|
||||
net = dn.load_net("cfg/yolo-thor.cfg", "/home/pjreddie/backup/yolo-thor_final.weights", 0)
|
||||
meta = dn.load_meta("cfg/thor.data")
|
||||
r = dn.detect(net, meta, "data/bedroom.jpg")
|
||||
print r
|
||||
|
||||
# And then down here you could detect a lot more images like:
|
||||
|
@ -47,7 +47,7 @@ void optimize_picture(network *net, image orig, int max_layer, float scale, floa
|
||||
|
||||
#ifdef GPU
|
||||
net->delta_gpu = cuda_make_array(delta.data, im.w*im.h*im.c);
|
||||
cuda_push_array(net->input_gpu, im.data, net->inputs);
|
||||
copy_cpu(net->inputs, im.data, 1, net->input, 1);
|
||||
|
||||
forward_network_gpu(net);
|
||||
copy_gpu(last.outputs, last.output_gpu, 1, last.delta_gpu, 1);
|
||||
@ -62,7 +62,8 @@ void optimize_picture(network *net, image orig, int max_layer, float scale, floa
|
||||
cuda_free(net->delta_gpu);
|
||||
net->delta_gpu = 0;
|
||||
#else
|
||||
net->input = im.data;
|
||||
printf("\nnet: %d %d %d im: %d %d %d\n", net->w, net->h, net->inputs, im.w, im.h, im.c);
|
||||
copy_cpu(net->inputs, im.data, 1, net->input, 1);
|
||||
net->delta = delta.data;
|
||||
forward_network(net);
|
||||
copy_cpu(last.outputs, last.output, 1, last.delta, 1);
|
||||
@ -308,8 +309,7 @@ void run_nightmare(int argc, char **argv)
|
||||
int reconstruct = find_arg(argc, argv, "-reconstruct");
|
||||
int smooth_size = find_int_arg(argc, argv, "-smooth", 1);
|
||||
|
||||
network *net = parse_network_cfg(cfg);
|
||||
load_weights(net, weights);
|
||||
network *net = load_network(cfg, weights, 0);
|
||||
char *cfgbase = basecfg(cfg);
|
||||
char *imbase = basecfg(input);
|
||||
|
||||
|
@ -17,7 +17,6 @@ def c_array(ctype, values):
|
||||
arr[:] = values
|
||||
return arr
|
||||
|
||||
|
||||
class BOX(Structure):
|
||||
_fields_ = [("x", c_float),
|
||||
("y", c_float),
|
||||
|
@ -177,7 +177,7 @@ void backward_convolutional_layer_gpu(convolutional_layer l, network net)
|
||||
if(l.smooth){
|
||||
smooth_layer(l, 5, l.smooth);
|
||||
}
|
||||
constrain_gpu(l.outputs*l.batch, 1, l.delta_gpu, 1);
|
||||
//constrain_gpu(l.outputs*l.batch, 1, l.delta_gpu, 1);
|
||||
gradient_array_gpu(l.output_gpu, l.outputs*l.batch, l.activation, l.delta_gpu);
|
||||
|
||||
|
||||
@ -236,7 +236,7 @@ void backward_convolutional_layer_gpu(convolutional_layer l, network net)
|
||||
float *b = net.workspace;
|
||||
float *c = l.weight_updates_gpu + j*l.nweights/l.groups;
|
||||
|
||||
float *im = net.input+(i*l.groups + j)*l.c/l.groups*l.h*l.w;
|
||||
float *im = net.input_gpu+(i*l.groups + j)*l.c/l.groups*l.h*l.w;
|
||||
|
||||
im2col_gpu(im, l.c/l.groups, l.h, l.w,
|
||||
l.size, l.stride, l.pad, b);
|
||||
|
@ -150,24 +150,24 @@ void cudnn_convolutional_setup(layer *l)
|
||||
l->weightDesc,
|
||||
l->convDesc,
|
||||
l->dstTensorDesc,
|
||||
CUDNN_CONVOLUTION_FWD_PREFER_FASTEST,
|
||||
0,
|
||||
CUDNN_CONVOLUTION_FWD_SPECIFY_WORKSPACE_LIMIT,
|
||||
4000000000,
|
||||
&l->fw_algo);
|
||||
cudnnGetConvolutionBackwardDataAlgorithm(cudnn_handle(),
|
||||
l->weightDesc,
|
||||
l->ddstTensorDesc,
|
||||
l->convDesc,
|
||||
l->dsrcTensorDesc,
|
||||
CUDNN_CONVOLUTION_BWD_DATA_PREFER_FASTEST,
|
||||
0,
|
||||
CUDNN_CONVOLUTION_BWD_DATA_SPECIFY_WORKSPACE_LIMIT,
|
||||
4000000000,
|
||||
&l->bd_algo);
|
||||
cudnnGetConvolutionBackwardFilterAlgorithm(cudnn_handle(),
|
||||
l->srcTensorDesc,
|
||||
l->ddstTensorDesc,
|
||||
l->convDesc,
|
||||
l->dweightDesc,
|
||||
CUDNN_CONVOLUTION_BWD_FILTER_PREFER_FASTEST,
|
||||
0,
|
||||
CUDNN_CONVOLUTION_BWD_FILTER_SPECIFY_WORKSPACE_LIMIT,
|
||||
4000000000,
|
||||
&l->bf_algo);
|
||||
}
|
||||
#endif
|
||||
|
@ -389,6 +389,7 @@ int resize_network(network *net, int w, int h)
|
||||
error("Cannot resize this type of layer");
|
||||
}
|
||||
if(l.workspace_size > workspace_size) workspace_size = l.workspace_size;
|
||||
if(l.workspace_size > 2000000000) assert(0);
|
||||
inputs = l.outputs;
|
||||
net->layers[i] = l;
|
||||
w = l.out_w;
|
||||
|
@ -1110,7 +1110,7 @@ void load_weights_upto(network *net, char *filename, int start, int cutoff)
|
||||
fread(&major, sizeof(int), 1, fp);
|
||||
fread(&minor, sizeof(int), 1, fp);
|
||||
fread(&revision, sizeof(int), 1, fp);
|
||||
if ((major*10 + minor) >= 2){
|
||||
if ((major*10 + minor) >= 2 && major < 1000 && minor < 1000){
|
||||
fread(net->seen, sizeof(size_t), 1, fp);
|
||||
} else {
|
||||
int iseen = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user