pytorch中.data的作用是什么?

我们分别不用.data和用.data打印一个随机张量看一下
rand_weight = torch.randn(3, 6)
y = rand_weight
x = rand_weight.data
print(y)
print(x)

结果:

tensor([[ 1.0963, -1.7917,  0.6733,  0.3536, -1.2165,  2.7969],
        [ 1.2443, -1.8792,  0.9939, -0.4416,  0.5122,  0.9356],
        [ 1.6338, -1.9056, -0.8147, -0.9045, -0.0339,  0.5759]])
tensor([[ 1.0963, -1.7917,  0.6733,  0.3536, -1.2165,  2.7969],
        [ 1.2443, -1.8792,  0.9939, -0.4416,  0.5122,  0.9356],
        [ 1.6338, -1.9056, -0.8147, -0.9045, -0.0339,  0.5759]])

可以发现二者没有区别,表面上没有。但其实x已经独立于计算图之外。

print(x.requires_grad)

结果:False

那么独立于计算图之后,对x的操作就不会被记录了。例如我们要进行激活操作。

print(y)
print(x.sigmoid())

结果:

tensor([[-1.2751, -0.6225,  0.8947, -2.2593, -0.8121,  0.9327],
        [ 0.1459, -0.2430, -0.9179,  0.4230,  1.3441,  0.6436],
        [ 1.6943,  1.9939, -1.3471,  0.5038,  0.3765,  0.3789]])
tensor([[0.2184, 0.3492, 0.7098, 0.0945, 0.3074, 0.7176],
        [0.5364, 0.4395, 0.2854, 0.6042, 0.7932, 0.6556],
        [0.8448, 0.8802, 0.2063, 0.6233, 0.5930, 0.5936]])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值