Esempio n. 1
0
void test_blob_col2patch()
{
  printf("------test blob col2patch------\n");
  Blob* blob = new_blob(3,3,1,1);
  Matrix* matrix = new_matrix(4,4);
  matrix->data[0]  = 0;
  matrix->data[1]  = 1;
  matrix->data[2]  = 3;
  matrix->data[3]  = 4;
  matrix->data[4]  = 1;
  matrix->data[5]  = 2;
  matrix->data[6]  = 4;
  matrix->data[7]  = 5;
  matrix->data[8]  = 3;
  matrix->data[9]  = 4;
  matrix->data[10] = 6;
  matrix->data[11] = 7;
  matrix->data[12] = 4;
  matrix->data[13] = 5;
  matrix->data[14] = 7;
  matrix->data[15] = 8;
  blob_col2patch(blob, matrix, 2, 2, 0, 0, 1, 1);
  matrix_print(matrix);
  LINE;
  blob_print(blob, true);
  del_matrix(matrix);
  del_blob(blob);
}
Esempio n. 2
0
void test_blob_avg_pool()
{
  printf("------test blob avg pool------\n");
  Blob* X = new_blob(3,3,1,1);
  int32_t x_bulk = blob_bulk(X), i;
  for (i = 0; i < x_bulk; ++i)
    X->data[i] = i;
  Blob* Y = new_blob(2,2,1,1);
  Blob* pool_idx = new_blob(4, 4, 1, 1);
  blob_avg_pool(Y, pool_idx, X, 2,2,0,0,1,1);
  blob_print(Y, true);
  LINE;
  blob_print(pool_idx, true);
  del_blob(X);
  del_blob(Y);
  del_blob(pool_idx);
}
Esempio n. 3
0
void test_blob_conv()
{
  printf("------test blob conv------\n");
  Blob* X = new_blob(3,3,1,1);
  int32_t x_bulk = blob_bulk(X), i;
  for (i = 0; i < x_bulk; ++i)
    X->data[i] = i;
  Blob* K = new_blob(2,2,1,1);
  K->data[0] = 1;
  K->data[1] = 1;
  K->data[2] = 1;
  K->data[3] = 1;
  Blob* Y = new_blob(2,2,1,1);
  blob_conv(Y, X, K, 0, 0, 1, 1);
  blob_print(Y, true);
  del_blob(X);
  del_blob(Y);
  del_blob(K);
}
Esempio n. 4
0
void test_blob_avg_unpool()
{
  printf("------test blob avg unpool------\n");
  Blob* X = new_blob(2,2,1,1);
  X->data[0] = 4;
  X->data[1] = 5;
  X->data[2] = 7;
  X->data[3] = 8;
  Blob* Y = new_blob(3,3,1,1);
  Blob* pool_idx = new_blob(4, 4, 1, 1);
  set_blob_val_at(pool_idx, 1.0, 0, 3, 0, 0);
  set_blob_val_at(pool_idx, 1.0, 1, 3, 0, 0);
  set_blob_val_at(pool_idx, 1.0, 2, 3, 0, 0);
  set_blob_val_at(pool_idx, 1.0, 3, 3, 0, 0);
  blob_max_unpool(Y, X, pool_idx, 2, 2, 0, 0, 1, 1);
  del_blob(pool_idx);
  del_blob(X);
  del_blob(Y);
}
Esempio n. 5
0
void test_blob_deconv()
{
  printf("------test blob deconv------\n");
  Blob* X = new_blob(2,2,1,1);
  X->data[0] = 8;
  X->data[1] = 12;
  X->data[2] = 20;
  X->data[3] = 24;
  Blob* K = new_blob(2,2,1,1);
  K->data[0] = 1;
  K->data[1] = 1;
  K->data[2] = 1;
  K->data[3] = 1;
  Blob* Y = new_blob(3,3,1,1);
  blob_deconv(Y, X, K, 0, 0, 1, 1);
  blob_print(Y, true);
  del_blob(X);
  del_blob(Y);
  del_blob(K);
}
Esempio n. 6
0
void test_blob_deconv2()
{
  printf("------test blob deconv2------\n");
  Blob* X = new_blob(2,2,1,1);
  X->data[0] = 5;
  X->data[1] = 9;
  X->data[2] = 21;
  X->data[3] = 25;
  Blob* K = new_blob(2,2,1,1);
  K->data[0] = 1;
  K->data[1] = 0;
  K->data[2] = 0;
  K->data[3] = 1;
  Blob* Y = new_blob(4,4,1,1);
  blob_deconv(Y, X, K, 0, 0, 2, 2);
  blob_print(Y, true);
  del_blob(X);
  del_blob(Y);
  del_blob(K);
}
Esempio n. 7
0
void test_blob_flatten()
{
  printf("------test blob flatten------\n");
  Blob* blob = new_blob(2,2,2,3);
  int32_t bulk = blob_bulk(blob), i;
  for (i = 0; i < bulk; ++i)
    blob->data[i] = i;
  Matrix* matrix = new_matrix(3,8);
  blob_flattened2d(matrix, blob);
  matrix_print(matrix);
  del_matrix(matrix);
  del_blob(blob);
}
Esempio n. 8
0
void test_blob_patch2col()
{
  printf("------test blob patch2col------\n");
  Blob* blob = new_blob(3,3,1,1);
  int32_t bulk = blob_bulk(blob), i;
  for (i = 0; i < bulk; ++i)
    blob->data[i] = i;
  Matrix* matrix = new_matrix(4,4);
  blob_patch2col(matrix, blob, 2, 2, 0, 0, 1, 1);
  matrix_print(matrix);
  del_matrix(matrix);
  del_blob(blob);
}
Esempio n. 9
0
File: blob.c Progetto: gvx/deja
Error make_blob(Stack *S, Stack *scope_arr)
{
	require(1);
	V v = popS();
	if (getType(v) != T_NUM)
	{
		clear_ref(v);
		return TypeError;
	}
	pushS(new_blob(toNumber(v)));
	clear_ref(v);
	return Nothing;
}
Esempio n. 10
0
void test_array()
{
  printf("test array\n");
  Array* array = new_array(10);
  Blob* data0  = new_blob(1,2,3,4);
  Blob* data1  = new_blob(2,3,4,5);
  Blob* data2  = new_blob(3,4,5,6);
  Blob* data3  = new_blob(1,2,3,4);
  Blob* data4  = new_blob(2,3,4,5);
  Blob* data5  = new_blob(3,4,5,6);
  Blob* data6  = new_blob(1,2,3,4);
  Blob* data7  = new_blob(2,3,4,5);
  Blob* data8  = new_blob(3,4,5,6);
  Blob* data9  = new_blob(1,2,3,4);
  Blob* data10 = new_blob(2,3,4,5);
  Blob* data11 = new_blob(3,4,5,6);
  array_push(array, data0 , del_blob);
  array_push(array, data1 , del_blob);
  array_push(array, data2 , del_blob);
  array_push(array, data3 , del_blob);
  array_push(array, data4 , del_blob);
  array_push(array, data5 , del_blob);
  array_push(array, data6 , del_blob);
  array_push(array, data7 , del_blob);
  array_push(array, data8 , del_blob);
  array_push(array, data9 , del_blob);
  array_push(array, data10, del_blob);
  array_push(array, data11, del_blob);
  array_print(array);
  int32_t  length  = array->length, i;
  Element* element = array->elements;
  for (i = 0; i < length; ++i)
  {
    blob_print(element->data, false);
    element ++;
    printf("--------------------\n");
  }
  array_clear(array);
  array_print(array);
  del_array(array);
}