[libtorch/C++]clone与copy

int main() {
  auto x = torch::zeros({2, 2});
  auto y = x;
  auto m = x.clone();
  auto n = torch::zeros_like(x);
  n.copy_(x);
  x[0][0] = 1;
  cout << y[0][0] << m[0][0] << n[0][0];
  return 0;
}

输出1,0,0
说明直接赋值是共享内存的,其他2种方法不会共享内存。
根据文档,clone会被记录到计算图中,而copy_则不会。

你可能感兴趣的:(libtorch/C++)