cuda上面的变量类型只能是tensor,不能是其他
1.detach()
Returns a new Tensor, detached from the current graph. The result will never require gradient.
返回一个新的Variable,从当前计算图中分离下来的,但是仍指向原变量的存放位置,不同之处只是requires_grad为false,得到的这个Variable永远不需要计算其梯度,不具有grad。
当我们再训练网络的时候可能希望保持一部分的网络参数不变,只对其中一部分的参数进行调整;或者值训练部分分支网络,并不让其梯度对主网络的梯度造成影响,这时候我们就需要使用detach()函数来切断一些分支的反向传播。
假设有模型A和模型B,需要将A的输出作为B的输入,但训练时只训练模型B. 那么可以这样做:
input_B = output_A.detach()
2.item()
一个元素张量x可以用x.item ()得到元素值。
import torch
c = torch.tensor([1])
print(c.item())
1
3.cpu()
将变量放在cpu上
4.Pytorch之tolist()
将tensor转换为list数据
import torch
c = torch.tensor([[2,3],[1,22]])
print(c)
print(c.tolist())
tensor([[ 2, 3], [ 1, 22]])
[[2, 3], [1, 22]]
5.numpy()
将tensor转换为numpy