Pytorch中的in-place操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liuxiangxxl/article/details/82585022

在刷编程题的时候,可能大家也经常遇到题目要求do in-place。起初并未在意,主要是即使没有按照要求实现,也可以AC,但总觉得有些投机取巧的嫌疑。所以就上网搜了相关概念,简单总结一下。

  in-place操作,意思是所有的操作都是”就地“操作,不允许进行移动,或者称作 原位操作,即不允许使用临时变量。

  举个例子,大家经常写也经常用到的”交换两个数的值”:

//设置初始值
int x = 1,y = 2;
  •  

1)最先想到的方法,就是设置临时变量

  •  

2)然而要满足in-place的要求,就需要另辟蹊径了。比如通过加减运算实现(但是可能会出现溢出)

  •  

3)通过异或操作实现

//异或运算
x = x ^ y;
y = x ^ y;
x = x ^ y;

猜你喜欢

转载自blog.csdn.net/liuxiangxxl/article/details/82585022