• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ NV_MAT_V函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中NV_MAT_V函数的典型用法代码示例。如果您正苦于以下问题:C++ NV_MAT_V函数的具体用法?C++ NV_MAT_V怎么用?C++ NV_MAT_V使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了NV_MAT_V函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: nv_vector_copy

void
nv_vector_copy(nv_matrix_t *dest, int dm, const nv_matrix_t *src, int sm)
{
	NV_ASSERT(dest->n >= src->n);

	memmove(&NV_MAT_V(dest, dm, 0), &NV_MAT_V(src, sm, 0), src->step * sizeof(float));
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:7,代码来源:nv_core_matrix.c


示例2: nv_vector_fill

void 
nv_vector_fill(nv_matrix_t *mat, int m, float v)
{
	if (mat->n < 64) {
		int i;
		for (i = 0; i < mat->n; ++i) {
			NV_MAT_V(mat, m, i) = v;
		}
	} else {
		int j, k;
		float *p = &NV_MAT_V(mat, m, 0);
		p[0] = v;
		k = 1;
		j = 1;
		while (k * 2 < mat->n) {
			memmove(&p[j], &p[0], k * sizeof(float));
			j += k;
			k *= 2;
		}
		if (k > 1) {
			k /= 2;
		}
		while (j < mat->n) {
			if (j + k <= mat->n) {
				memmove(&p[j], &p[0], k * sizeof(float));
				j += k;
			} else {
				if (k > 1) {
					k /= 2;
				}
			}
		}
	}
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:34,代码来源:nv_core_matrix.c


示例3: nv_contrast

void 
nv_contrast(nv_matrix_t *dest, int dch,
			const nv_matrix_t *src, int sch,
			float angle)// 0.0f-90.0f
{
	int i, j;
	float deg_scale = NV_PI / 180.0f;
	nv_matrix_t *conv = nv_matrix_alloc(256, 1);

	NV_ASSERT(dest->m == src->m);
	NV_ASSERT(dch <= dest->n);
	NV_ASSERT(sch <= src->n);

	for (i = 0; i < conv->n; ++i) {
		NV_MAT_V(conv, 0, i) = tanf(angle * deg_scale) * ((float)i - 127.0f) + 127.0f;
		if (NV_MAT_V(conv, 0, i) > 255.0f) {
			NV_MAT_V(conv, 0, i) = 255.0f;
		}
		if (NV_MAT_V(conv, 0, i) < 0.0f) {
			NV_MAT_V(conv, 0, i) = 0.0f;
		}
	}
	for (j = 0; j < src->m; ++j) {
		NV_ASSERT(NV_MAT_V(src, j, sch) < 256.0f);
		NV_ASSERT(NV_MAT_V(src, j, sch) > 0.0f);

		NV_MAT_V(dest, j, dch) = NV_MAT_V(conv, 0, (int)NV_MAT_V(src, j, sch));
	}
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:29,代码来源:nv_ip_gray.c


示例4: conv_image2vec

static nv_matrix_t *
conv_image2vec(const nv_bgseg_t *bg,
			   const nv_matrix_t *image)
{
	nv_matrix_t *vec;
	nv_matrix_t *smooth;
	nv_matrix_t *resize = NULL, *gray = NULL;
	int i;
	float scale = (float)bg->size / (float)NV_MAX(image->rows, image->cols);

	if (scale != 1.0f) {
		resize = nv_matrix3d_alloc(image->n,
								   NV_ROUND_INT(image->rows * scale),
								   NV_ROUND_INT(image->cols * scale));
		nv_resize(resize, image);
		image = resize;
	}
	if (image->n != 1) {
		gray = nv_matrix3d_alloc(1, image->rows, image->cols);
		nv_gray(gray, image);
		image = gray;
	}
	vec = nv_matrix_alloc(image->rows * image->cols, 1);
	smooth = nv_matrix_clone(image);
	nv_gaussian5x5(smooth, 0, image, 0);

	for (i = 0; i < image->m; ++i) {
		NV_MAT_V(vec, 0, i) = NV_MAT_V(smooth, i, 0);
	}
	nv_matrix_free(&smooth);
	nv_matrix_free(&gray);
	nv_matrix_free(&resize);
	
	return vec;
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:35,代码来源:nv_ip_bgseg.c


示例5: nv_mahalanobis

// Mahalanobis distance
float nv_mahalanobis(const nv_cov_t *cov, const nv_matrix_t *x, int xm)
{
	int n;
	nv_matrix_t *y = nv_matrix_alloc(x->n, 1);
	nv_matrix_t *x2 = nv_matrix_alloc(x->n, 1);
	float distance;
	float delta2 = 0.0f;

	nv_matrix_zero(y);
	nv_matrix_zero(x2);
	for (n = 0; n < x2->n; ++n) {
		NV_MAT_V(x2, 0, n) = NV_MAT_V(x, xm, n) - NV_MAT_V(cov->u, 0, n);
	}
	nv_gemv(y, 0, NV_MAT_TR, cov->eigen_vec, x2, xm);
	for (n = 0; n < x->n; ++n) {
		float ev = NV_MAT_V(cov->eigen_val, n, 0);
		float xv = NV_MAT_V(y, 0, n);
		delta2 += (xv * xv) / ev;
	}

	distance = sqrtf(delta2);
	nv_matrix_free(&x2);
	nv_matrix_free(&y);

	return distance;
}
开发者ID:inlmouse,项目名称:lbpcascade_animeface.Net,代码行数:27,代码来源:nv_distance.c


示例6: nv_contrast_sigmoid

void nv_contrast_sigmoid(nv_matrix_t *dest, int dch,
						 const nv_matrix_t *src, int sch,
						 float gain) // 0.1f-1.0f
{
	int i, j;
	nv_matrix_t *conv = nv_matrix_alloc(256, 1);
	float max_v = -FLT_MAX;
	float min_v = FLT_MAX;

	NV_ASSERT(dest->m == src->m);
	NV_ASSERT(dch <= dest->n);
	NV_ASSERT(sch <= src->n);

	for (j = 0; j < src->m; ++j) {
		if (max_v < NV_MAT_V(src, j, sch)) {
			max_v = NV_MAT_V(src, j, sch);
		}
		if (min_v > NV_MAT_V(src, j, sch)) {
			min_v = NV_MAT_V(src, j, sch);
		}
	}

	for (i = 0; i < conv->n; ++i) {
		float x = 255.0f * ((float)i - min_v) / max_v;
		NV_MAT_V(conv, 0, i) = 255.0f * (1.0f / (1.0f + expf(-gain * (x - 128.0f) * 0.078125f)));
	}
	for (j = 0; j < src->m; ++j) {
		NV_ASSERT(NV_MAT_V(src, j, sch) < 256.0f);
		NV_ASSERT(NV_MAT_V(src, j, sch) > 0.0f);
		NV_MAT_V(dest, j, dch) = NV_MAT_V(conv, 0, (int)NV_MAT_V(src, j, sch));
	}
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:32,代码来源:nv_ip_gray.c


示例7: nv_mlp_regression

/* 回帰 */
void nv_mlp_regression(const nv_mlp_t *mlp, 
					   const nv_matrix_t *x, int xm, nv_matrix_t *out, int om)
{
	int m;
	float y;
	nv_matrix_t *input_y = nv_matrix_alloc(mlp->input_w->m, 1);
	nv_matrix_t *hidden_y = nv_matrix_alloc(mlp->hidden_w->m, 1);

#ifdef _OPENMP
#pragma omp parallel for private(y)
#endif
	for (m = 0; m < mlp->input_w->m; ++m) {
		y = NV_MAT_V(mlp->input_bias, m, 0)  * NV_MLP_BIAS;
		y += nv_vector_dot(x, xm, mlp->input_w, m);
		NV_MAT_V(input_y, 0, m) = nv_mlp_sigmoid(y);
	}

	for (m = 0; m < mlp->hidden_w->m; ++m) {
		y = NV_MAT_V(mlp->hidden_bias, m, 0) * NV_MLP_BIAS;
		y += nv_vector_dot(input_y, 0, mlp->hidden_w, m);
		NV_MAT_V(hidden_y, 0, m) = y;
	}

	nv_vector_copy(out, om, hidden_y, 0);

	nv_matrix_free(&input_y);
	nv_matrix_free(&hidden_y);
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:29,代码来源:nv_ml_mlp.c


示例8: nv_vector_dot

float 
nv_vector_dot(const nv_matrix_t *vec1, int m1,
			  const nv_matrix_t *vec2, int m2)
{
	NV_ASSERT(vec1->n == vec2->n);
	
#if NV_ENABLE_AVX
	{
		NV_ALIGNED(float, mm[8], 32);
		__m256 x, u;
		int n;
		int pk_lp = (vec1->n & 0xfffffff8);
		float dp = 0.0f;
		
		u = _mm256_setzero_ps();
		for (n = 0; n < pk_lp; n += 8) {
			x = _mm256_load_ps(&NV_MAT_V(vec2, m2, n));
			u = _mm256_add_ps(u, _mm256_mul_ps(x, *(__m256 *)&NV_MAT_V(vec1, m1, n)));
		}
		_mm256_store_ps(mm, u);
		dp = mm[0] + mm[1] + mm[2] + mm[3] + mm[4] + mm[5] + mm[6] + mm[7];
		for (n = pk_lp; n < vec1->n; ++n) {
			dp += NV_MAT_V(vec1, m1, n) * NV_MAT_V(vec2, m2, n);
		}
		
		return dp;
	}
#elif NV_ENABLE_SSE2
	{
		NV_ALIGNED(float, mm[4], 16);
		__m128 x, u;
		int n;
		int pk_lp = (vec1->n & 0xfffffffc);
		float dp = 0.0f;

		u = _mm_setzero_ps();
		for (n = 0; n < pk_lp; n += 4) {
			x = _mm_load_ps(&NV_MAT_V(vec2, m2, n));
			u = _mm_add_ps(u,
				_mm_mul_ps(x, *(__m128 *)&NV_MAT_V(vec1, m1, n)));
		}
		_mm_store_ps(mm, u);
		dp = mm[0] + mm[1] + mm[2] + mm[3];
		for (n = pk_lp; n < vec1->n; ++n) {
			dp += NV_MAT_V(vec1, m1, n) * NV_MAT_V(vec2, m2, n);
		}
  
		return dp;
	}
#else
	{
		int n;
		float dp = 0.0f;
		for (n = 0; n < vec1->n; ++n) {
			dp += NV_MAT_V(vec1, m1, n) * NV_MAT_V(vec2, m2, n);
		}
		return dp;
	}
#endif
}
开发者ID:nagadomi,项目名称:nv-debian,代码行数:60,代码来源:nv_num_vector.c


示例9: nv_mlp_predict_vector

void
nv_mlp_predict_vector(const nv_mlp_t *mlp,
					  nv_matrix_t *p, int p_j,
					  const nv_matrix_t *x, int x_j)
{
	int m;
	float y;
	nv_matrix_t *input_y = nv_matrix_alloc(mlp->hidden, 1);
	nv_matrix_t *hidden_y = nv_matrix_alloc(mlp->output, 1);
	float dropout_scale = 1.0f - mlp->dropout;
	float noise_scale = 1.0f - mlp->noise;
	
#ifdef _OPENMP
#pragma omp parallel for private(y)
#endif
	for (m = 0; m < mlp->hidden; ++m) {
		y = NV_MAT_V(mlp->input_bias, m, 0) * NV_MLP_BIAS;
		y += nv_vector_dot(x, x_j, mlp->input_w, m) * noise_scale;
		NV_MAT_V(input_y, 0, m) = nv_mlp_sigmoid(y) * dropout_scale;
	}
	for (m = 0; m < mlp->output; ++m) {
		y = NV_MAT_V(mlp->hidden_bias, m, 0) * NV_MLP_BIAS;
		y += nv_vector_dot(input_y, 0, mlp->hidden_w, m);
		NV_MAT_V(hidden_y, 0, m) = nv_mlp_sigmoid(y);
	}
	nv_mlp_softmax(p, p_j, hidden_y, 0);

	nv_matrix_free(&input_y);
	nv_matrix_free(&hidden_y);
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:30,代码来源:nv_ml_mlp.c


示例10: nv_mlp_predict

float nv_mlp_predict(const nv_mlp_t *mlp,
					 const nv_matrix_t *x, int xm, int cls)
{
	int m;
	float y;
	nv_matrix_t *input_y = nv_matrix_alloc(mlp->input_w->m, 1);
	nv_matrix_t *hidden_y = nv_matrix_alloc(mlp->output, 1);
	nv_matrix_t *output_y = nv_matrix_alloc(mlp->output, 1);
	float p;
	double dropout_scale = 1.0 - mlp->dropout;
	float noise_scale = 1.0f - mlp->noise;
	
#ifdef _OPENMP
#pragma omp parallel for private(y)
#endif
	for (m = 0; m < mlp->hidden; ++m) {
		y = NV_MAT_V(mlp->input_bias, m, 0) * NV_MLP_BIAS;
		y += nv_vector_dot(x, xm, mlp->input_w, m) * noise_scale;
		NV_MAT_V(input_y, 0, m) = nv_mlp_sigmoid(y) * dropout_scale;
	}

	for (m = 0; m < mlp->output; ++m) {
		y = NV_MAT_V(mlp->hidden_bias, m, 0) * NV_MLP_BIAS;
		y += nv_vector_dot(input_y, 0, mlp->hidden_w, m);
		NV_MAT_V(hidden_y, 0, m) = nv_mlp_sigmoid(y);
	}
	nv_mlp_softmax(output_y, 0, hidden_y, 0);
	p = NV_MAT_V(output_y, 0, cls);

	nv_matrix_free(&input_y);
	nv_matrix_free(&hidden_y);
	nv_matrix_free(&output_y);

	return p;
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:35,代码来源:nv_ml_mlp.c


示例11: nv_mlp_predict_label

int nv_mlp_predict_label(const nv_mlp_t *mlp, const nv_matrix_t *x, int xm)
{
	int m;
	int label = -1;
	float max_output = -FLT_MAX;
	nv_matrix_t *input_y = nv_matrix_alloc(mlp->input_w->m, 1);
	float dropout_scale = 1.0f - mlp->dropout;
	float noise_scale = 1.0f - mlp->noise;

#ifdef _OPENMP
#pragma omp parallel for
#endif
	for (m = 0; m < mlp->hidden; ++m) {
		float y = NV_MAT_V(mlp->input_bias, m, 0) * NV_MLP_BIAS;
		y += nv_vector_dot(x, xm, mlp->input_w, m) * noise_scale;
		NV_MAT_V(input_y, 0, m) = nv_mlp_sigmoid(y) * dropout_scale;
	}
	for (m = 0; m < mlp->output; ++m) {
		float y = NV_MAT_V(mlp->hidden_bias, m, 0) * NV_MLP_BIAS;
		y += nv_vector_dot(input_y, 0, mlp->hidden_w, m);
		if (max_output < y) {
			label = m;
			max_output = y;
		}
	}
	nv_matrix_free(&input_y);

	return label;
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:29,代码来源:nv_ml_mlp.c


示例12: nv_gaussian_predict

/* この関数は次元が高いと確率が小さくなりすぎて数値計算できないので
 * 次元が高い場合は, この関数値の対数であるnv_gaussian_log_predictを使うこと.
 */
float 
nv_gaussian_predict(const nv_cov_t *cov, const nv_matrix_t *x, int xm)
{
	int n;
	nv_matrix_t *y = nv_matrix_alloc(x->n, 2);
	float p = 1.0f;
	float d = (float)x->n;
	float delta2 = 0.0f;
	float lambda = 1.0f;

	nv_vector_sub(y, 0, x, xm, cov->u, 0);
	nv_matrix_mulv(y, 1, cov->eigen_vec, NV_MAT_TR, y, 0);
	for (n = 0; n < x->n; ++n) {
		float ev = NV_MAT_V(cov->eigen_val, n, 0);
		float xv = NV_MAT_V(y, 1, n);
		if (ev > 0.0f) {
			delta2 += (xv * xv) / ev;
			lambda *= sqrtf(ev);
		}
	}
	p = (1.0f / powf(2.0f * NV_PI, d / 2.0f)) * (1.0f / lambda) * expf(-0.5f * delta2);

	nv_matrix_free(&y);

	return p;
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:29,代码来源:nv_ml_gaussian.c


示例13: nv_matrix_sort

void
nv_matrix_sort(nv_matrix_t *mat, int sort_column_n, nv_sort_dir_e dir)
{
	nv_matrix_t *sort_data = nv_matrix_alloc(2, mat->m);
	nv_matrix_t *tmp = nv_matrix_alloc(mat->n, mat->m);
	int m;

	for (m = 0; m < mat->m; ++m) {
		NV_MAT_V(sort_data, m, 0) = NV_MAT_V(mat, m, sort_column_n);
		NV_MAT_V(sort_data, m, 1) = (float)m;
	}
	if (dir == NV_SORT_DIR_ASC) {
		qsort(sort_data->v, sort_data->m,
			sort_data->step * sizeof(float), nv_column_cmp_asc);
	} else {
		qsort(sort_data->v, sort_data->m,
			sort_data->step * sizeof(float), nv_column_cmp_desc);
	}
	for (m = 0; m < mat->m; ++m) {
		nv_vector_copy(tmp, m, mat, (int)NV_MAT_V(sort_data, m, 1));
	}
	nv_matrix_copy(mat, 0, tmp, 0, mat->m);

	nv_matrix_free(&sort_data);
	nv_matrix_free(&tmp);
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:26,代码来源:nv_core_matrix.c


示例14: nv_integral_tilted

/*
 * 45°回転したIntegral Image
 */
void 
nv_integral_tilted(nv_matrix_t *integral,
				   const nv_matrix_t *img, int channel)
{
	int row, col, scol, srow;
	int erow = img->rows + 1;
	int ecol = img->cols + 1;
	nv_matrix_t *prev_tilted = nv_matrix_alloc(img->cols + 1, 1);

	NV_ASSERT(
		integral->rows - 1 == img->rows 
		&& integral->cols - 1 == img->cols
	);

	nv_matrix_zero(prev_tilted);
	nv_matrix_zero(integral);

	for (scol = img->cols; scol > 0; --scol) {
		float tilted_sum = 0.0f;
		for (row = 1, col = scol; row < erow && col < ecol; ++row, ++col) {
			float tilted_val = NV_MAT3D_V(img, row - 1, col - 1, channel);
			if (col + 1 == ecol) {
				NV_MAT3D_V(integral, row, col, 0) = 
					NV_MAT3D_V(integral, row - 1, col, 0)
					+ tilted_sum + tilted_val;
			} else {
				NV_MAT3D_V(integral, row, col, 0) = 
					NV_MAT3D_V(integral, row - 1, col + 1, 0) 
					+ NV_MAT_V(prev_tilted, 0, col)
					+ tilted_sum + tilted_val;
			}
			tilted_sum += tilted_val;
			NV_MAT_V(prev_tilted, 0, col) = tilted_sum;
		}
	}
	for (srow = 2; srow < erow; ++srow) {
		float tilted_sum = 0.0f;
		for (row = srow, col = 1; row < erow && col < ecol; ++row, ++col) {
			float tilted_val = NV_MAT3D_V(img, row - 1, col - 1, channel);
			if (col + 1 == ecol) {
				NV_MAT3D_V(integral, row, col, 0) = 
					NV_MAT3D_V(integral, row - 1, col, 0)
					+ tilted_sum + tilted_val;
			} else {
				NV_MAT3D_V(integral, row, col, 0) = 
					NV_MAT3D_V(integral, row - 1, col + 1, 0) 
					+ NV_MAT_V(prev_tilted, 0, col)
					+ tilted_sum + tilted_val;
			}
			tilted_sum += tilted_val;
			NV_MAT_V(prev_tilted, 0, col) = tilted_sum;
		}
	}

	nv_matrix_free(&prev_tilted);
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:59,代码来源:nv_ip_integral.c


示例15: nv_color_bgr2euclidean_scalar

void nv_color_bgr2euclidean_scalar(nv_matrix_t *ec, int ec_m, const nv_matrix_t *bgr, int bgr_m)
{
	assert(ec->n == bgr->n && ec->n == 3);
	NV_MAT_V(ec, ec_m, 0) = floorf((NV_MAT_V(bgr, bgr_m, NV_CH_R) + NV_MAT_V(bgr, bgr_m, NV_CH_G) + NV_MAT_V(bgr, bgr_m, NV_CH_B)) / 3.0f);
	NV_MAT_V(ec, ec_m, 1) = floorf((NV_MAT_V(bgr, bgr_m, NV_CH_R) + (255.0f - NV_MAT_V(bgr, bgr_m, NV_CH_B))) / 2.0f);
	NV_MAT_V(ec, ec_m, 2) = floorf((NV_MAT_V(bgr, bgr_m, NV_CH_R) + 2.0f * (255.0f - NV_MAT_V(bgr, bgr_m, NV_CH_G)) + NV_MAT_V(bgr, bgr_m, NV_CH_B)) / 4.0f);
}
开发者ID:nya3jp,项目名称:python-animeface,代码行数:7,代码来源:nv_euclidean_color.c


示例16: nv_matrix_split

void 
nv_matrix_split(nv_matrix_t *mat1, int dest_n, const nv_matrix_t *mat2, int src_n)
{
	int m;

	NV_ASSERT(mat1->m == mat2->m);

	for (m = 0; m < mat1->m; ++m) {
		NV_MAT_V(mat1, m, dest_n) = NV_MAT_V(mat2, m, src_n);
	}
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:11,代码来源:nv_core_matrix.c


示例17: nv_matrix_reshape_vec

void
nv_matrix_reshape_vec(nv_matrix_t *vec, int vec_j,
					  const nv_matrix_t *mat)
{
	int j;
	NV_ASSERT(mat->n * mat->m == vec->n);
	
	for (j = 0; j < mat->m; ++j) {
		memmove(&NV_MAT_V(vec, vec_j, mat->n * j), &NV_MAT_V(mat, j, 0),
				sizeof(float) * mat->n);
	}
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:12,代码来源:nv_core_matrix.c


示例18: nv_mlp_error

static float
nv_mlp_error(const nv_matrix_t *output_y, int oj,
			 const nv_matrix_t *t, int dj)
{
	int n;
	float e = 0.0f;
	for (n = 0; n < output_y->n; ++n) {
		if (NV_MAT_V(output_y, oj, n) > FLT_EPSILON) {
			e += -NV_MAT_V(t, dj, n) * logf(NV_MAT_V(output_y, oj, n));
		}
	}
	return e;
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:13,代码来源:nv_ml_mlp.c


示例19: nv_euclidean2

// Euclidean distance^2
float nv_euclidean2(const nv_matrix_t *vec1, int m1, const nv_matrix_t *vec2, int m2)
{
	int n;
	float dist = 0.0f;

	assert(vec1->n == vec2->n);

	for (n = 0; n < vec1->n; ++n) {
		dist += (NV_MAT_V(vec1, m1, n) - NV_MAT_V(vec2, m2, n))
			* (NV_MAT_V(vec1, m1, n) - NV_MAT_V(vec2, m2, n));
	}
	return dist;
}
开发者ID:inlmouse,项目名称:lbpcascade_animeface.Net,代码行数:14,代码来源:nv_distance.c


示例20: nv_mlp_softmax

static void
nv_mlp_softmax(nv_matrix_t *output_y, int oj,
			   const nv_matrix_t *hidden_y, int hj)
{
	float base = NV_MAT_V(hidden_y, hj, nv_vector_max_n(hidden_y, hj));
	float z = 0.0f;
	int n;
	for (n = 0; n < output_y->n; ++n) {
		NV_MAT_V(output_y, oj, n) = expf(NV_MAT_V(hidden_y, hj, n) - base);
		z += NV_MAT_V(output_y, oj, n);
	}
	nv_vector_divs(output_y, oj, output_y, oj, z);
}
开发者ID:andrew950468,项目名称:otama_api,代码行数:13,代码来源:nv_ml_mlp.c



注:本文中的NV_MAT_V函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ NV_Read函数代码示例发布时间:2022-05-30
下一篇:
C++ NV_LENGTH_S函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap