pytorch官方tutorial练习 --- I

之前本来想直接自己看pytorch的official tutorial的,但是发现pytorch中文手册中,有一斤翻译的版本,那就对照着看吧!

Part I. Why is Pytorch

I. Initialization

这部分主要介绍了如何初始化tensor(张量)也就是pytorch的Data structure,类似于ndarray之于numpy。
我们主要使用如下的几个function来定义tensor:

  • x = torch.empy(X,Y)
  • x = torch.rand(X,Y), 创建一个size为(X,Y)的,各个entry的value符合[0,1)的均匀分布的tensor。
  • x = torch.randn(X,Y), 同上,只不过这个满足标准正态分布即均值0,方差1.
  • x = torch.zeros(X,Y),
  • x = torch.ones(X,Y)\
  • 除此之外还有,x = torch.randn_like(x),来帮助我们快速定义一个和之前已定义的tensor具有一样的size的new tensor。

以上的几个函数均可以通过留下的接口dtype=…来直接定义数据的类型:常见的可选项为torch.float(32,64), torch.double, torch.long等等。如果我们想要查看tensor的shape我们用: x.size()就可以,不能用torch.size(x),切记!
还有就是对tensor的reshape操作,tensor是x.view(target_dimension) 以及 x.reshape(target_dimension)都接受的!

II. Numpy Bridge

这部分主要是讲tensor和numpy之间的相互转换,没啥好说的,
tensor 转 np array:
b = a.numpy(),若是gpu target则需要,
b = a.cpu().numpy()

np array 转tensor:
b = torch.from_numpy(a), 就可以自动转换了。但是注意,这个函数是没有dtype=…的接口的,也就是说,转换过来的tensor会自动根据np array本身的数据类型转换,若想进一步转换则需要在之后自己定义, e.g., torch.FloatTensor(x)。

III. CUDA tensors (Using GPU)

为了能将tensor变为cuda tensor并让其之后的运算都能在gpu上运行我们需要定义一下这个常见操作:

if torch.cuda.is_available():
    device = torch.device("cuda")          # a CUDA device object
    y = torch.ones(2,3,dtype=torch.float, device=device)  
    print(y)
    print(y.to("cpu", torch.double))       # ``.to`` can also change dtype together!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值