210713周二17:33,刚才想到昨天inplace,应该是满足三个条件
    1、前后尺寸不变
    2、element-wise操作
    3、没有A->B、A->C的多分支使用场合

    第2点,按元素操作:
    有些卷积操作也可以保证前后尺寸不变,但不能使用inplace
    举个反例:每个新元素值是3*3网格重新取平均值
    a b c
    d e f
    g h d
    e更新为e’后,再计算f’时,使用的就不是旧的e,而是变成新的e’了。

    这好比一个excel有10行,你要删除第2、4、5行,不是for循环删除245,因为你删除2的时候,原来在4、5的位置,相对来说已经重新变成了3、4的位置。

    再举个例子,一个序列:1 2 3 4
    现在要把序列上每个位置的值,变成和前一个数字的和
    正常应该是:1 3 5 7
    如果原地操作,从左往右遍历算,得到的是错误的:1 3 6 10

    当然一维情况,可以有特殊技巧可以解决,比如删除行,可以从后往前删,删除5、4、2就行了
    后面的一维序列,可以从右往左算
    但二维就麻烦了,与其想骚技巧原地操作,不如保险不开inplace