Pytorch学习笔记(2)---Numpy桥

  • Numpy桥—Tensor与numpy的Array的相互转换
    对于学过numpy的小伙伴,这个转换还是很好理解的。没有学过的话,可以在这个连接下学习学习,讲得挺详细的。 [http://old.sebug.net/paper/books/scipydoc/numpy_intro.html]
    需要注意的是:Torch的Tensor和numpy的array会共享他们的存储空间,修改一个会导致另外的一个也被修改。

  • 将numpy的Array转换为torch的Tensor

>>> import torch
>>> a=torch.ones(5)
>>> b=a.numpy()
>>> a

 1
 1
 1
 1
 1
[torch.FloatTensor of size 5]

>>> b
array([ 1.,  1.,  1.,  1.,  1.], dtype=float32)
#比较简单,只需要在torch的后面加上'.numpy()'即可。
  • 将torch的Tensor转换为numpy的Array
>>> import numpy as np 
>>> a=np.ones(5)
>>> b=torch.from_numpy(a)
>>> a
array([ 1.,  1.,  1.,  1.,  1.])
>>> b

 1
 1
 1
 1
 1
[torch.DoubleTensor of size 5]
  • GPU加速计算
    先看看支不支持cuda,cuda可以加速计算,像神经网络进行网络训练,如果数据量较大,有cuda的就快多了。
>>>torch.cuda.is_available()  #看看是否支持cuda运算
如果为True的话,就可以使用cuda了。
使用CUDA函数来将Tensor移动到GPU上,当CUDA可用时会进行GPU的运算
if torch.cuda.is_available():
    x = x.cuda()
    y = y.cuda()
    x + y

猜你喜欢

转载自blog.csdn.net/rongpeisheng666/article/details/78786098