Pytorch Tensor与Variable、Numpy

Pytorch Tensor与Variable、Numpy

Pytorch作为一种非常高效便捷的深度学习框架,其主要优点在于可以与Numpy无缝连接,所以下面我们来看一下Pytorch Tensor(CPU & GPU)与Numpy中的Narray之间的相互转换:

1.类间转换

因为Tensor作为一种数据类型,也有Long、Float、Int等类型之分,因此首先来介绍一下,这些类型之间的转换(无论GPU、CPU都通用):

e.g.

  • Torch.LongTensor ==> Torch.FloatTensor:
    • data.float()
    • 利用Type函数:
      • data.type(torch.FloatTensor)

2.设备转换

作为一种深度学习框架,Pytorch既可以在CPU上运行也可以在GPU上运行,因此下面来介绍一下CPU与GPU之间的转换问题:

e.g.

1.Pytorch Tensor CPU<==>GPU

  • Tensor_CPU ==> Tensor_GPU:
    • data.cuda()
  • Tensor_GPU ==> Tensor_CPU:
    • data.cpu()

3.Variable & Tensor

Variable变量转换成普通的Tensor,其实可以理解Variable为一个Wrapper,里头的data就是Tensor. 如果Var是Variable变量,使用Var.data获得Tensor变量
e.g.

  • Variable==> Tensor:
    • Variable.data

4.Tensor & Numpy Array

e.g.

  • Tensor ==> Numpy
    • data.numpy()
  • Numpy ==> Tensor
    • torch.from_numpy(data)

你可能感兴趣的:(Pytorch)