Дан массив 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
будет тензором соответствующей длины / формы.
Если я заменим 1.0
на массив b
, заполненный единицами, его длина равна длине a
, это сработает.Недостатком является то, что я должен выделить память для b
.Я также могу сделать что-то вроде a = 1.0 / a
, которое снова выделит дополнительную (временную) память.
Как я могу сделать эту операцию эффективно "на месте" (без выделения дополнительной памяти), в идеале с вещанием