From 6553b3f0e3e55fc30a99c7d4b5798aa86d18a114 Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Mon, 30 Mar 2015 02:31:47 +0000
Subject: [PATCH] no comment
---
src/image.c | 24 ++++++++++++++++++++++++
src/imagenet.c | 1 +
src/data.c | 5 +++++
src/convolutional_kernels.cu | 6 +++---
4 files changed, 33 insertions(+), 3 deletions(-)
diff --git a/src/convolutional_kernels.cu b/src/convolutional_kernels.cu
index c28731f..d260a95 100644
--- a/src/convolutional_kernels.cu
+++ b/src/convolutional_kernels.cu
@@ -11,15 +11,15 @@
__global__ void bias_output_kernel(float *output, float *biases, int n, int size)
{
int offset = blockIdx.x * blockDim.x + threadIdx.x;
- int filter = blockIdx.y % n;
- int batch = blockIdx.y / n;
+ int filter = blockIdx.y;
+ int batch = blockIdx.z;
if(offset < size) output[(batch*n+filter)*size + offset] = biases[filter];
}
void bias_output_gpu(float *output, float *biases, int batch, int n, int size)
{
- dim3 dimGrid((size-1)/BLOCK + 1, n*batch, 1);
+ dim3 dimGrid((size-1)/BLOCK + 1, n, batch);
dim3 dimBlock(BLOCK, 1, 1);
bias_output_kernel<<<dimGrid, dimBlock>>>(output, biases, n, size);
diff --git a/src/data.c b/src/data.c
index 7069248..c1167da 100644
--- a/src/data.c
+++ b/src/data.c
@@ -66,6 +66,7 @@
typedef struct box{
int id;
float x,y,w,h;
+ float left, right, top, bottom;
} box;
box *read_boxes(char *filename, int *n)
@@ -83,6 +84,10 @@
boxes[count].y = y;
boxes[count].h = h;
boxes[count].w = w;
+ boxes[count].left = x - w/2;
+ boxes[count].right = x + w/2;
+ boxes[count].top = y - h/2;
+ boxes[count].bottom = y + h/2;
++count;
}
fclose(file);
diff --git a/src/image.c b/src/image.c
index 174b24c..2cfce63 100644
--- a/src/image.c
+++ b/src/image.c
@@ -395,6 +395,26 @@
return out;
}
+image crop_image(image im, int dr, int dc, int h, int w)
+{
+ image cropped = make_image(h, w, im.c);
+ int i, j, k;
+ for(k = 0; k < im.c; ++k){
+ for(j = 0; j < h; ++j){
+ for(i = 0; i < w; ++i){
+ int r = j + dr;
+ int c = i + dc;
+ float val = 128;
+ if (r >= 0 && r < im.h && c >= 0 && c < im.w) {
+ val = get_pixel(im, r, c, k);
+ }
+ set_pixel(cropped, j, i, k, val);
+ }
+ }
+ }
+ return cropped;
+}
+
// #wikipedia
image resize_image(image im, int h, int w)
{
@@ -427,9 +447,13 @@
image im = load_image(filename, 0,0);
image small = resize_image(im, 63, 65);
image big = resize_image(im, 512, 513);
+ image crop = crop_image(im, 10, 50, 100, 100);
+ image crop2 = crop_image(im, -50, -30, 400, 291);
show_image(im, "original");
show_image(small, "smaller");
show_image(big, "bigger");
+ show_image(crop, "crop");
+ show_image(crop2, "crop2");
cvWaitKey(0);
}
diff --git a/src/imagenet.c b/src/imagenet.c
index 9118c08..8a4ebcb 100644
--- a/src/imagenet.c
+++ b/src/imagenet.c
@@ -38,6 +38,7 @@
avg_loss = avg_loss*.9 + loss*.1;
printf("%d: %f, %f avg, %lf seconds, %d images\n", i, loss, avg_loss, sec(clock()-time), net.seen);
free_data(train);
+ //if(i%100 == 0 && net.learning_rate > .00001) net.learning_rate *= .97;
if(i%100==0){
char buff[256];
sprintf(buff, "/home/pjreddie/imagenet_backup/%s_%d.weights",base, i);
--
Gitblit v1.10.0