PyTorch基础:Tensor的内存共享

为了实现高效计算,PyTorch提供了一些原地操作运算,即in-place operation,不经过复制,直接在原来的内存上进行计算。对于内存共享,主要有如下3种情况:
PyTorch基础:Tensor的内存共享_第1张图片

  1. 通过Tensor初始化Tensor
    直接通过Tensor来初始化另一个Tensor,或者通过Tensor的组合、分块、索引、变形操作来初始化另一个Tensor,则这两个Tensor共享内存。
    PyTorch基础:Tensor的内存共享_第2张图片
  2. 原地操作符
    PyTorch对于一些操作通过加后缀 “ _ ” 实现了原地操作,如add_()和resize_()等,这种操作只要被执行,本身的Tensor则会被改变。
    PyTorch基础:Tensor的内存共享_第3张图片
  3. Tensor与NumPy转换
    Tensor与NumPy可以高效地进行转换,并且转换前后的变量共享内存。在进行PyTorch不支持的操作时,甚至可以曲线救国,将Tensor转换为NumPy类型,操作后再转换为Tensor
    PyTorch基础:Tensor的内存共享_第4张图片

你可能感兴趣的:(PyTorch基础)