PyTorch入门笔记

PyTorch入门笔记

  1. PyTorchTensorFlow的区别:

    • PyTorch:动态计算图, Dynamic Computation Graph
    • TensorFlow:静态计算图,Static Computation Graph
  2. PyTorch是一个基于Python的科学计算库,它有以下特点:

    • 类似于NumPy,但是它可以使用GPU
    • 可以用它定义深度学习模型,可以灵活地进行深度学习模型的训练和使用
  3. NumpyTensor之间的转化:

    Torch TensorNumPy array之间相互转化非常容易;

    Torch TensorNumPy array会共享内存,所以改变其中一项另一项也会变;

    import torch
    import numpy as np
    a = torch.ones(5)
    # a = tensor([1., 1., 1., 1., 1.])
    b = a.numpy()
    # b = array([1., 1., 1., 1., 1.], dtype=float32)
    # 改变numpy array里面的值
    b[1] = 2
    # b = array([1., 2., 1., 1., 1.], dtype=float32)
    # a = tensor([1., 2., 1., 1., 1.])    a的值也变了
    
    # 把Numpy ndarray转成Torch Tensor
    x = np.ones(5)
    y = torch.from_numpy(a)
    

    注:所有CPU上的Tensor都支持转成numpy或者从numpy转成Tensor

  4. CUDA Tensors

    使用.to方法,Tensor可以被移动到别的device

    import torch
    if torch.cuda.is_available():
        device = torch.device("cuda")
        y = torch.ones_like(x, device=device)
        # 在GPU上面取Tensor的值的时候,需要先将其移到CPU上面
        y.to("cpu").data.numpy()
        y.cpu().data.numpy()
        x = x.to(device)
    

你可能感兴趣的:(PyTorch,pytorch)