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 中不匹配的主要内容,如果未能解决你的问题,请参考以下文章
Tensorflow C++ API实现MatMul矩阵相乘操作
knn.fit() 错误:valueError:发现输入变量的样本数不一致
paddle报ValueError: The type of data we are trying to retrieve does not match the type