在pytorch中,我们需要注意,对于tensor的操作有时候是in-place类型。
in-place类型是指,“在一个tensor上操作了之后,直接修改这个tensor”,
而不是 “返回一个新的tensor,旧的tensor并不修改”。
pytorch中,一般来说,如果对tensor的一个函数后加上了下划线,则表明这是一个in-place类型
clamp 和 clamp_ (以下为实际例子)
import torch
a=torch.rand(3)
print(a)
b=a.clamp(min=0.5,max=0.7)
print(a)
print(b)
print()
a=torch.rand(3)
print(a)
c=a.clamp_(min=0.5,max=0.7)
print(a)
print(c)
print()
另外:
pandas 中 inplace 参数在很多函数中都会有,它的作用是:是否在原对象基础上进行修改
inplace = True:不创建新的对象,直接对原始对象进行修改;不返回东西
inplace = False:对数据进行修改,创建并返回新的对象承载其修改结果。
默认是False,即创建新的对象进行修改,原对象不变,和深复制和浅复制有些类似。
import pandas as pd
import numpy as np
df=pd.DataFrame(np.random.randn(4,3),columns=["A","B","C"])
data=df.drop(["A"],axis=1,inplace=True)
print(df)
print(data)
df=pd.DataFrame(np.random.randn(4,3),columns=["A","B","C"])
data=df.drop(["A"],axis=1,inplace=False)
print(df)
print(data)