zoukankan      html  css  js  c++  java
  • 2.8 将tensor移动到GPU上

    在Pytorch中,所有对tensor的操作,都是由GPU-specific routines完成的。tensor的device属性来控制tensor在计算机中存放的位置。

    我们可以在tensor的构造器中显示的指定tensor存放在GPU上

     也可以用 to 方法把一个CPU上的tensor复制到GPU上

     这行代码在GPU上创建了一个新的,内容一致的tensor。

    在GPU上的tensor的计算,就可以被GPU加速了。同样的,在GPU上的tensor会对应一个新的类型。如 torch.FloatTensor 对应 torch.cuda.FloatTensor.

    基本,CPU和GPU上的tensor对应的API都是一样的,这样降低了开发成本。

    对于多GPU的电脑,也可以通过0起始的索引显式的指定使用的GPU

     指定device后,所有对tensor的操作都会在GPU上执行

     要注意的是:points_gpu 在计算完成后不会被移回CPU。上面这行代码,做的事情是:

      1 把points复制到GPU

      2 在GPU上创建一个新的tensor,用来接收计算结果

      3 返回一个指定计算结果的句柄

    所以,如果对结果加一个常数,还是在GPU上进行的,而不会返回到CPU

    如果想把tensor返回给CPU,需要显式的指定device参数

     调用 to方法太麻烦了,我们可以使用简写的 cuda 方法 和 cpu 方法来对tensor进行移动。

     但是,使用 to 方法,我们可以通过指定 dtype和device参数,实现同时改变tensor的数据类型和存储位置。

  • 相关阅读:
    Python 重要的字符串处理函数
    Python 字符串类型及相关操作
    Windows 7下Git SSH 创建Key的步骤(by 星空武哥)
    Python 列表类型及相关操作
    Python 字典类型及相关操作
    袁老师Py西游攻关之基础数据类型
    PyCharm2017安装教程,包含注册码
    python安装及语法1
    Ubuntu linux安装ssh server
    soap消息机制 讲解
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/13403564.html
Copyright © 2011-2022 走看看