【发布时间】:2019-04-20 09:34:21
【问题描述】:
Given 是一个数组a:
a = np.arange(1, 11, dtype = 'float32')
使用 numpy,我可以做到以下几点:
np.divide(1.0, a, out = a)
导致:
array([1. , 0.5 , 0.33333334, 0.25 , 0.2 ,
0.16666667, 0.14285715, 0.125 , 0.11111111, 0.1 ],
dtype=float32)
假设 a 是一个 pytorch 张量,则以下操作失败:
torch.div(1.0, a, out = a)
div的第一个参数预计是匹配长度/形状的张量。
如果我用一个数组b 替换1.0,它的长度等于a 的长度,它可以工作。缺点是我必须为b 分配内存。我还可以执行a = 1.0 / a 之类的操作,这将再次分配额外的(临时)内存。
如何有效地“就地”执行此操作(无需分配额外内存),最好是通过广播?
【问题讨论】:
标签: python python-3.x numpy pytorch