首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cblas_dgemm分段故障

cblas_dgemm分段故障
EN

Stack Overflow用户
提问于 2013-11-15 05:56:12
回答 1查看 562关注 0票数 0

我使用cblass_dgemm将两个矩阵相乘

它被认为是计算B= A‘x A;

代码语言:javascript
复制
row_train = 10304, col_train = 5;

gsl_matrix *mean_centred_train = gsl_matrix_alloc(row_train, col_train);
gsl_matrix * image_for_eigen = gsl_matrix_alloc(col_train, col_train);

我是这么称呼它的:

代码语言:javascript
复制
cblas_dgemm(CblasRowMajor, CblasTrans, CblasNoTrans, mean_centred_train->size1, mean_centred_train->size2, mean_centred_train->size2, 1, mean_centred_train->data, mean_centred_train->size1, mean_centred_train->data, mean_centred_train->size1, 1, image_for_eigen->data, image_for_eigen->size1);

当我运行程序时,我得到了一个分割错误,并且我非常确定矩阵的大小是正确的。

EN

回答 1

Stack Overflow用户

发布于 2013-11-26 19:08:04

应该是这样的。

代码语言:javascript
复制
cblas_dgemm(CblasRowMajor, CblasTrans, CblasNoTrans, 
            image_for_eigen->size1, //m
            image_for_eigen ->size2,  //n
            mean_centred_train->size1,  //k
            1.0, //alpha 
            mean_centred_train->data, mean_centred_train->size1,
            mean_centred_train->data, mean_centred_train->size1,
            0.0, //beta
            image_for_eigen->data, image_for_eigen->size1);

[m, n]是结果矩阵的大小,无论输入矩阵是否转置。另外,如果你想要B=A'*Abeta应该是0.0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19989228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档