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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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; }
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); }