• PyTorch深度学习基础之Tensor对象及其应用的讲解及实战(附源码 简单易懂 包括分段 映射 矩阵乘法 随机数等等)


    觉得有帮助请点赞关注收藏 有问题可评论区留言~~~

    Tensor对象是一个维度任意的矩阵,但是一个Tensor中所有元素的数据类型必须一致。torch包含的数据类型和普遍编程语言的数据类型类似,包含浮点型,有符号整型和无符号整形,这些类型既可以定义在CPU上,也可以定义在GPU上。在使用Tensor数据类型时,可以通过dtype属性指定它的数据类型,device指定它的设备(CPU或者GPU)

    1:基本定义

    代码如下 可查看tensor的基本类型以及运行设备

    1. import torch
    2. import numpy as np
    3. print('torch.tensor 默认为:{}'.format(torch.Tensor(1).dtype))
    4. a=torch.tensor([[1,2],[3,4]],dtype=torch.float64)
    5. print(a)
    6. #cpu -gpu之间转换
    7. c=torch.ones((2,2))
    8. c=c.to('cpu',torch.double)
    9. print(c.device)

    输出如下 

     2:矩阵乘法

    对Tensor执行算术符的运算时 是两个矩阵对应元素的运算,torch.mm执行矩阵乘法的计算

    代码如下

     

    1. import torch
    2. import numpy as np
    3. #矩阵对应元素运算
    4. a=torch.tensor([[1,2],[3,4]])
    5. b=torch.tensor([[1,2],[4,6]])
    6. c=a*b
    7. print("每个元素相乘",c)
    8. c=torch.mm(a,b)
    9. print("矩阵乘法",c)

    3:分段、化整、映射函数

    clamp起的是分段函数的作用,可以用于去除矩阵中过小或者过大的元素,round函数将小数部分化整,tanh计算双曲正切函数,该函数将值映射到0,1

    代码如下

    1. import torch
    2. import numpy as np
    3. #特定功能函数
    4. #clamp分段
    5. a=torch.tensor([[1,2],[3,4]])
    6. print(torch.clamp(a,min=2,max=3))
    7. #round化整
    8. a=torch.tensor([[1.1,0.5],[0.6,-1.2]])
    9. print(torch.round(a))
    10. #tanh双曲正切 映射到0 1
    11. print(torch.tanh(a))

     四、arange等方法创建数据

    除了直接从ndarray或list类型的数据中创建Tensor外,PyTorch还提供了一些函数可以直接创建数据,这类函数往往需要提供矩阵的维度,它和python内置的range的使用方法基本想吐,其第三个参数是步长,linsapce函数第三个参数指定返回的个数。ones返回全1,zeors返回全0

    1. import torch
    2. import numpy as np
    3. #直接 创建数据
    4. print(torch.arange(5))
    5. print(torch.arange(1,5,2))
    6. print(torch.linspace(0,5,10))
    7. #全01
    8. print(torch.ones(3,3))
    9. print(torch.zeros(3,3))

     五、rand返回随机数

    rand返回从0 1均匀分布采样的元素所组成的矩阵,randn返回从正态分布采样的元素所组成的矩阵,randint返回指定区间的均匀分布采样的随机整数所组成的矩阵 

    代码如下

    1. import torch
    2. import numpy as np
    3. print('torch.tensor 默认为:{}'.format(torch.Tensor(1).dtype))
    4. a=torch.tensor([[1,2],[3,4]],dtype=torch.float64)
    5. print(a)
    6. #cpu -gpu之间转换
    7. c=torch.ones((2,2))
    8. c=c.to('cpu',torch.double)
    9. print(c.device)
    10. #矩阵对应元素运算
    11. a=torch.tensor([[1,2],[3,4]])
    12. b=torch.tensor([[1,2],[4,6]])
    13. c=a*b
    14. print("每个元素相乘",c)
    15. c=torch.mm(a,b)
    16. print("矩阵乘法",c)
    17. #特定功能函数
    18. #clamp分段
    19. a=torch.tensor([[1,2],[3,4]])
    20. print(torch.clamp(a,min=2,max=3))
    21. #round化整
    22. a=torch.tensor([[1.1,0.5],[0.6,-1.2]])
    23. print(torch.round(a))
    24. #tanh双曲正切 映射到0 1
    25. print(torch.tanh(a))
    26. #直接 创建数据
    27. print(torch.arange(5))
    28. print(torch.arange(1,5,2))
    29. print(torch.linspace(0,5,10))
    30. #全01
    31. print(torch.ones(3,3))
    32. print(torch.zeros(3,3))
    33. #随机
    34. print(torch.rand(3,3))
    35. print(torch.randn(3,3))
    36. print(torch.randint(0,9,(3,3)))

    创作不易 觉得有帮助请点赞关注收藏~~~

  • 相关阅读:
    Java性能优化(详解)
    javascript数据类型
    java ftputils 模拟测试方法 有效
    LeetCode刷题——有序矩阵中第 K 小的元素#378#Medium
    DSPE-PEG-Thiol,DSPE-PEG-SH(MV:2000),磷脂-聚乙二醇-巯基低温储存
    代码随想录打卡第四十八天|动态规划章节 ● 322. 零钱兑换 ● 279.完全平方数
    浏览器渲染原理
    Worthington公司天冬氨酸氨基转移酶特异性说明
    软件项目质量管理体系,软件评审,资质认证,安全建设及项目管理匹配资料(原件参考)
    Netty入门--传统IO与NIO详解
  • 原文地址:https://blog.csdn.net/jiebaoshayebuhui/article/details/127997529