为什么这段代码的输出不是二维形式而是一维形式?

王艾伯 |
from mxnet import nd

n_train, n_test, true_w, true_b = 100, 100, [1.2, -3.4, 5.6], 5

features = nd.random.normal(shape=(n_train + n_test, 1))
poly_features = nd.concat(features, nd.power(features, 2),
                         nd.power(features, 3))
labels = (true_w[0] * poly_features[:, 0] + true_w[1] * poly_features[:, 1] + true_w[2] * poly_features[:, 2] + true_b)
labels += nd.random.normal(scale=0.01, shape=labels.shape)

print(labels[:2])

由于形状featurespoly_features都是2D NDArray,我认为这种代码的输出的形式,如下:

NDArray 2x1 @cpu(0),

但真正的输出形式是

NDArray 2 @cpu(0).

为什么输出不是 2D NDArray?

谢尔盖

虽然featurespoly_features是 2D NDArray,但在计算时labels仅使用 的切片poly_features,它们是 1D NDArray。这是断线的代码:

labels = true_w[0] * poly_features[:, 0] # true_w[0] is scalar, poly_features[:, 0] is 1D NDAarray
       + true_w[1] * poly_features[:, 1] # true_w[1] is scalar, poly_features[:, 1] is 1D NDAarray
       + true_w[2] * poly_features[:, 2] # true_w[2] is scalar, poly_features[:, 2] is 1D NDAarray
       + true_b # true_b is scalar

所以,你得到一维数组作为答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么下一行生成一维数组而不是二维数组?

为什么 TransformedTargetRegressor 的 func 参数需要返回二维数组而不是一维数组?

为什么我在NumPy中进行矩阵矢量乘法运算会生成二维数组而不是一维矢量?

如何在Angular中将一维数组显示为二维矩阵形式

这段代码如何初始化二维数组?

创建一维 numpy.ndarray 而不是二维

Matplotlib 绘制二维形状而不是一维线条

一维数组---->二维或多维数组代码

为什么二维数组在java中运行速度明显慢于一维数组

为什么二维随机游走的一维变体不起作用?

为什么二维NumPy数组的布尔索引会生成一维数组?

将 Numpy 数组转换为特定的二维形式

以螺旋形式生成二维数组

以矩阵形式打印二维数组

奇异值分解(SVD)输出一维奇异值数组,而不是二维对角矩阵[Python]

ValueError:预期的二维数组,而是得到一维数组:对于矩阵?

更改二维数组变量也会更改原始二维数组变量。为什么?

为什么php json_encode编码二维数组但输出纯数组

我想在控制台上输出一个二维代码吗?

为什么二维高斯分布具有圆形而不是椭圆形?

为什么基于for循环的范围内的二维数组的元素是T*而不是T(*)[n]?

mySQL,从二维到一维

一维数组 -> 二维数组

为什么Python跳过代码?Openpyxl,二维词典和异常

为什么一维数组和二维数组的复制和修改数组的方法的结果不同?

指向二维数组的指针(为什么起作用)

为什么要使用二维结构数组?

为什么将此Java数组视为二维的?

为什么二维循环的for循环比numpy快