当前位置:   article > 正文

PyTorch基础知识_pytorch new_ones

pytorch new_ones
  1. x = torch.rand(4, 3)
  2. x = torch.zeros(4, 3, dtype=torch.long)
  3. x = torch.tensor([5.5, 3])
  4. x = x.new_ones(4, 3, dtype=torch.double) # 创建一个新的tensor,返回的tensor默认具有相同的 torch.dtype和torch.device
  5. # 也可以像之前的写法 x = torch.ones(4, 3, dtype=torch.double)
  6. print(x)
  7. x = torch.randn_like(x, dtype=torch.float)
  8. # 重置数据类型
  9. print(x)
  10. # 结果会有一样的size
  11. #获取它的维度信息:
  12. print(x.size())
  13. print(x.shape)
  14. return x.shape(1)#取第几个维度
  15. #改变大小:如果你想改变一个 tensor 的大小或者形状,你可以使用 torch.view:
  16. x = torch.randn(4, 4)
  17. y = x.view(16)
  18. z = x.view(-1, 8) # -1是指这一维的维数由其他维度决定
  19. print(x.size(), y.size(), z.size())
  20. #注意 view() 返回的新tensor与源tensor共享内存(其实是同一个tensor),也即更改其中的一个,另 外一#个也会跟着改变。(顾名思义,view仅仅是改变了对这个张量的观察⻆度)
  1. tensor的参数
  2. Keyword args:
  3. dtype (:class:`torch.dtype`, optional): the desired data type of returned tensor.
  4. Default: if ``None``, infers data type from :attr:`data`.
  5. device (:class:`torch.device`, optional): the desired device of returned tensor.
  6. Default: if ``None``, uses the current device for the default tensor type
  7. (see :func:`torch.set_default_tensor_type`). :attr:`device` will be the CPU
  8. for CPU tensor types and the current CUDA device for CUDA tensor types.
  9. requires_grad (bool, optional): If autograd should record operations on the
  10. returned tensor. Default: ``False``.
  11. pin_memory (bool, optional): If set, returned tensor would be allocated in
  12. the pinned memory. Works only for CPU tensors. Default: ``False``.

grad在反向传播过程中是累加的(accumulated),这意味着每一次运行反向传播,梯度都会累加之前的梯度,所以一般在反向传播之前需把梯度清零。

每次backward()都会累加梯度。

并行:

  • 网络结构分布到不同的设备中(Network partitioning) 依赖GPU通信
  • 同一层的任务分布到不同数据中(Layer-wise partitioning
  • 不同的数据分布到不同的设备中,执行相同的任务(Data parallelism),网络架构大的话有点浪费空间
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/272433
推荐阅读
相关标签
  

闽ICP备14008679号