gpt4 book ai didi

cblas_dgemm 段错误

转载 作者:行者123 更新时间:2023-11-30 15:42:56 24 4
gpt4 key购买 nike

我正在使用 cblass_dgemm 来将两个矩阵相乘

应该计算 B = A' x A;

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

我是这样调用它的:

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

当我运行该程序时,我遇到了段错误,并且我很确定矩阵的大小是正确的。

最佳答案

应该是这样的。

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

关于cblas_dgemm 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19989228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com