pytorch 中的 Expand 相当于 numpy 的什么?

ihd*_*hdv 5 python numpy pytorch array-broadcasting

假设我有一个xshape 的numpy 数组[1,5]。我想沿轴 0 扩展它,使得生成的数组y具有形状 [10,5] 并且对于每个 i 都y[i:i+1,:]等于x

如果x是一个 pytorch 张量我可以简单地做

y = x.expand(10,-1)
Run Code Online (Sandbox Code Playgroud)

但是 numpy 中没有expand,并且那些看起来像它(expand_dimsrepeat)的行为似乎不像它。


例子:

y = x.expand(10,-1)
Run Code Online (Sandbox Code Playgroud)

fla*_*awr 11

您可以通过 来实现这一点np.broadcast_to。但不能使用负数:

>>> import numpy as np
>>> x = np.array([[ 1.3306,  0.0627,  0.5585, -1.3128, -1.4724]])
>>> print(np.broadcast_to(x,(10,5)))
[[ 1.3306  0.0627  0.5585 -1.3128 -1.4724]
 [ 1.3306  0.0627  0.5585 -1.3128 -1.4724]
 [ 1.3306  0.0627  0.5585 -1.3128 -1.4724]
 [ 1.3306  0.0627  0.5585 -1.3128 -1.4724]
 [ 1.3306  0.0627  0.5585 -1.3128 -1.4724]
 [ 1.3306  0.0627  0.5585 -1.3128 -1.4724]
 [ 1.3306  0.0627  0.5585 -1.3128 -1.4724]
 [ 1.3306  0.0627  0.5585 -1.3128 -1.4724]
 [ 1.3306  0.0627  0.5585 -1.3128 -1.4724]
 [ 1.3306  0.0627  0.5585 -1.3128 -1.4724]]
Run Code Online (Sandbox Code Playgroud)