Alexey
2017-08-09 08d6910521d9aa05a11d0db154ae70874e47d0e1
src/data.c
@@ -29,7 +29,7 @@
    int i;
    pthread_mutex_lock(&mutex);
    for(i = 0; i < n; ++i){
        int index = rand()%m;
        int index = random_gen()%m;
        indexes[i] = index;
        random_paths[i] = paths[index];
        if(i == 0) printf("%s\n", paths[index]);
@@ -39,17 +39,28 @@
}
*/
inline unsigned int random_gen()
{
   unsigned int Num = 0;
#ifdef WIN32
   rand_s(&Num);
#else
   Num = rand();
#endif
   return Num;
}
char **get_random_paths(char **paths, int n, int m)
{
    char **random_paths = calloc(n, sizeof(char*));
    int i;
    pthread_mutex_lock(&mutex);
   //printf("n = %d \n", n);
    for(i = 0; i < n; ++i){
        int index = (rand()*rand())%m;
    for(i = 0; i < n; ++i){
        int index = random_gen() % m;
        random_paths[i] = paths[index];
        //if(i == 0) printf("%s\n", paths[index]);
      //printf("%s\n", paths[index]);
      //printf("grp: %s\n", paths[index]);
    }
    pthread_mutex_unlock(&mutex);
    return random_paths;
@@ -115,7 +126,7 @@
    for(i = 0; i < n; ++i){
        image im = load_image_color(paths[i], 0, 0);
        image crop = random_augment_image(im, angle, aspect, min, max, size);
        int flip = rand()%2;
        int flip = random_gen()%2;
        if (flip) flip_image(crop);
        random_distort_image(crop, hue, saturation, exposure);
@@ -163,7 +174,7 @@
    int i;
    for(i = 0; i < n; ++i){
        box_label swap = b[i];
        int index = rand()%n;
        int index = random_gen()%n;
        b[i] = b[index];
        b[index] = swap;
    }
@@ -524,7 +535,7 @@
        float sx = (float)swidth  / ow;
        float sy = (float)sheight / oh;
        int flip = rand()%2;
        int flip = random_gen()%2;
        image cropped = crop_image(orig, pleft, ptop, swidth, sheight);
        float dx = ((float)pleft/ow)/sx;
@@ -610,7 +621,7 @@
data load_data_swag(char **paths, int n, int classes, float jitter)
{
    int index = rand()%n;
    int index = random_gen()%n;
    char *random_path = paths[index];
    image orig = load_image_color(random_path, 0, 0);
@@ -643,7 +654,7 @@
    float sx = (float)swidth  / w;
    float sy = (float)sheight / h;
    int flip = rand()%2;
    int flip = random_gen()%2;
    image cropped = crop_image(orig, pleft, ptop, swidth, sheight);
    float dx = ((float)pleft/w)/sx;
@@ -693,7 +704,7 @@
        float sx = (float)swidth  / ow;
        float sy = (float)sheight / oh;
        int flip = rand()%2;
        int flip = random_gen()%2;
        image cropped = crop_image(orig, pleft, ptop, swidth, sheight);
        float dx = ((float)pleft/ow)/sx;
@@ -716,8 +727,8 @@
void *load_thread(void *ptr)
{
   srand(time(0));
    //printf("Loading data: %d\n", rand());
   //srand(time(0));
    //printf("Loading data: %d\n", random_gen());
    load_args a = *(struct load_args*)ptr;
    if(a.exposure == 0) a.exposure = 1;
    if(a.saturation == 0) a.saturation = 1;
@@ -760,7 +771,7 @@
void *load_threads(void *ptr)
{
   srand(time(0));
   //srand(time(0));
    int i;
    load_args args = *(load_args *)ptr;
    if (args.threads == 0) args.threads = 1;
@@ -855,7 +866,7 @@
    for(i = 0; i < n; ++i){
        image im = load_image_color(paths[i], 0, 0);
        image crop = random_crop_image(im, w*scale, h*scale);
        int flip = rand()%2;
        int flip = random_gen()%2;
        if (flip) flip_image(crop);
        image resize = resize_image(crop, w, h);
        d.X.vals[i] = resize.data;
@@ -977,7 +988,7 @@
{
    int j;
    for(j = 0; j < n; ++j){
        int index = rand()%d.X.rows;
        int index = random_gen()%d.X.rows;
        memcpy(X+j*d.X.cols, d.X.vals[index], d.X.cols*sizeof(float));
        memcpy(y+j*d.y.cols, d.y.vals[index], d.y.cols*sizeof(float));
    }
@@ -1090,7 +1101,7 @@
{
    int i;
    for(i = d.X.rows-1; i > 0; --i){
        int index = rand()%i;
        int index = random_gen()%i;
        float *swap = d.X.vals[index];
        d.X.vals[index] = d.X.vals[i];
        d.X.vals[i] = swap;
@@ -1154,7 +1165,7 @@
    int i;
    for(i = 0; i < num; ++i){
        int index = rand()%d.X.rows;
        int index = random_gen()%d.X.rows;
        r.X.vals[i] = d.X.vals[index];
        r.y.vals[i] = d.y.vals[index];
    }