ValueError:matmul:输入操作数 1 在其核心维度 0 中不匹配

Posted

技术标签:

【中文标题】ValueError:matmul:输入操作数 1 在其核心维度 0 中不匹配【英文标题】:ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0 【发布时间】:2021-12-08 15:28:07 【问题描述】:

我需要执行乘法以从我的特征 i、x、y、z、n 中获得回归值,如下所示:

# use only one sample
feats = np.array([i, x, y, z, n]).reshape(1, -1)

# scale
scaler = StandardScaler()

# fit
feat_scaled = scaler.fit_transform(feats)

# multiply and get regressed value --> 'reg' is regression object
val = feat_scaled @ reg.coef_ + reg.intercept_

地点:

print (reg.coef_.shape, feat_scaled.shape)

(55,) (1, 5)

但我得到了错误:

ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 55 is different from 5)

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

reg.coef_ 形状为(5,),因此无法执行带有feat_scaled 的点积。这个数组需要重塑为(5, 1)

如下:

feat_scaled @ reg.coef_.reshape(-1,1)+ reg.intercept_

【讨论】:

以上是关于ValueError:matmul:输入操作数 1 在其核心维度 0 中不匹配的主要内容,如果未能解决你的问题,请参考以下文章

LSTM - 进行预测时输入中的 Matmul 错误

tf.matmul(x, W) + b

matmul 内在函数的 Fortran 数组排名

Tensorflow C++ API实现MatMul矩阵相乘操作

knn.fit() 错误:valueError:发现输入变量的样本数不一致

paddle报ValueError: The type of data we are trying to retrieve does not match the type