pytorch基础【3】torch运算

pytorch基础【3】torch运算

码农世界 2024-06-21 后端 36185 次浏览 17417个评论

文章目录

  • torch运算
      • 基本运算
      • 形状操作
        • 自动调整size (参数-1)
        • 数学运算
        • 逻辑运算
        • 常见的高级操作
        • 随机数生成

          torch运算

          基本运算

          1. 创建张量:

            import torch
            # 直接从列表或数组创建张量
            x = torch.tensor([1, 2, 3])
            

            创建特定值的张量:

            # 全零张量
            zeros = torch.zeros(3, 3)
            # 全一张量
            ones = torch.ones(3, 3)
            # 单位张量(对角线为1,其余为0)
            eye = torch.eye(3)
            # 随机张量
            rand = torch.rand(3, 3)
            # 从均值为0,标准差为1的正态分布中抽取的随机张量
            randn = torch.randn(3, 3)
            

            创建等差数列张量:

            # 从0到10(不包括10)的等差数列,步长为2
            arange = torch.arange(0, 10, 2)
            

            创建特定间隔的数列张量:

            # 从0到10均匀分布的5个数
            linspace = torch.linspace(0, 10, 5)
            
          2. 加法和减法:

            # 加法
            z = x + y  # torch.add(x, y)
            print(z)  # 输出: tensor([5, 7, 9])
            # 减法
            z = x - y  # torch.sub(x, y)
            print(z)  # 输出: tensor([-3, -3, -3])
            
          3. 乘法和除法:

            # 元素乘法
            z = x * y  # torch.mul(x, y)
            print(z)  # 输出: tensor([ 4, 10, 18])
            # 元素除法
            z = x / y  # torch.div(x, y)
            print(z)  # 输出: tensor([0.2500, 0.4000, 0.5000])
            
          4. 矩阵乘法:

            a = torch.tensor([[1, 2], [3, 4]])
            b = torch.tensor([[5, 6], [7, 8]])
            # 矩阵乘法
            z = torch.matmul(a, b)  # 或者 a @ b
            print(z)  # 输出: tensor([[19, 22], [43, 50]])
            

          形状操作

          1. 改变形状:view()

            a = torch.tensor([[1, 2, 3], [4, 5, 6]])
            # 改变形状
            b = a.view(3, 2)
            print(b)
            # 输出:
            # tensor([[1, 2],
            #         [3, 4],
            #         [5, 6]])
            
            自动调整size (参数-1)

            view中一个参数指定为-1,代表自动调整这个维度上的元素个数,以保证元素的总数不变。

            import torch
            x1 = torch.arange(0,16)
            print(x1)
            #a1: tensor([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15])
            ------------------------------------------------------------------------------------------------------   
            x2 = x1.view(-1, 16)
            x3 = x1.view(-1, 8)
            x4 = x1.view(-1, 4)
            x5 = x1.view(-1, 2)
            print(x2)
            print(x3)
            print(x4)
            print(x5)
            x2: tensor([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15]])
            x3: tensor([[ 0,  1,  2,  3,  4,  5,  6,  7],
                    [ 8,  9, 10, 11, 12, 13, 14, 15]])
            x4: tensor([[ 0,  1,  2,  3],
                    [ 4,  5,  6,  7],
                    [ 8,  9, 10, 11],
                    [12, 13, 14, 15]])
            x5: tensor([[ 0,  1],
                    [ 2,  3],
                    [ 4,  5],
                    [ 6,  7],
                    [ 8,  9],
                    [10, 11],
                    [12, 13],
                    [14, 15]])
            
          2. 拼接:

            x = torch.tensor([[1, 2], [3, 4]])
            y = torch.tensor([[5, 6], [7, 8]])
            # 沿着0轴拼接(垂直拼接)
            z = torch.cat((x, y), dim=0)
            print(z)
            # 输出:
            # tensor([[1, 2],
            #         [3, 4],
            #         [5, 6],
            #         [7, 8]])
            # 沿着1轴拼接(水平拼接)
            z = torch.cat((x, y), dim=1)
            print(z)
            # 输出:
            # tensor([[1, 2, 5, 6],
            #         [3, 4, 7, 8]])
            
          3. 切片:

            a = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
            # 切片
            b = a[:, 1]  # 第二列
            print(b)  # 输出: tensor([2, 5, 8])
            

          数学运算

          1. 求和:sum()

            x = torch.tensor([1, 2, 3, 4])
            # 求和
            sum_x = torch.sum(x)
            print(sum_x)  # 输出: tensor(10)
            
          2. 均值:mean()

            # 均值
            mean_x = torch.mean(x.float())  # 转换为浮点数类型
            print(mean_x)  # 输出: tensor(2.5000)
            
          3. 最大值和最小值:max(),min()

            # 最大值
            max_x = torch.max(x)
            print(max_x)  # 输出: tensor(4)
            # 最小值
            min_x = torch.min(x)
            print(min_x)  # 输出: tensor(1)
            

          逻辑运算

          1. 比较运算:

            x = torch.tensor([1, 2, 3])
            y = torch.tensor([2, 2, 2])
            # 大于
            print(x > y)  # 输出: tensor([False, False,  True])
            # 小于
            print(x < y)  # 输出: tensor([ True, False, False])
            
          2. 逻辑与、或:

            a = torch.tensor([True, False, True])
            b = torch.tensor([False, False, True])
            # 逻辑与
            c = torch.logical_and(a, b)
            print(c)  # 输出: tensor([False, False,  True])
            # 逻辑或
            c = torch.logical_or(a, b)
            print(c)  # 输出: tensor([ True, False,  True])
            

          常见的高级操作

          1. 广播机制:

            a = torch.tensor([1, 2, 3])
            b = torch.tensor([[1], [2], [3]])
            # 广播机制
            c = a + b
            print(c)
            # 输出:
            # tensor([[2, 3, 4],
            #         [3, 4, 5],
            #         [4, 5, 6]])
            
          2. 自动梯度计算:

            x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)
            # 前向传播
            y = x + 2
            z = y * y * 2
            out = z.mean()
            # 反向传播
            out.backward()
            print(x.grad)  # 输出: tensor([4.6667, 6.0000, 7.3333])
            

          随机数生成

          1. 从标准正态分布中生成随机张量:

            randn_tensor = torch.randn(3, 3) # 生成一个形状为 (3, 3) 的随机张量,服从标准正态分布
            print(randn_tensor)
            #tensor([[ 1.2335, -0.3941,  0.8990],
            #        [ 0.0470, -1.2671,  0.3248],
            #       [-0.4062, -0.6862,  0.1314]])
            
          2. 生成随机排列:

            randperm_tensor = torch.randperm(10)  # 生成一个从 0 到 9 的随机排列
            print(randperm_tensor)
            #tensor([2, 0, 5, 1, 8, 6, 3, 4, 7, 9])
            
          3. 生成等差数列张量:

            arange_tensor = torch.arange(0, 10, 2) # 生成从 0 到 10(不包括 10)的等差数列,步长为 2
            print(arange_tensor)
            #tensor([0, 2, 4, 6, 8])
            

转载请注明来自码农世界,本文标题:《pytorch基础【3】torch运算》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (有 17417 条评论,36185人围观)参与讨论
网友昵称:游客
游客游客 沙发
07-08 回复
怪事年年有,今年特别多!http://2ds.bjaksj.com
网友昵称:游客
游客游客 椅子
07-08 回复
看了这么多帖子,第一次看到这么经典的!http://w492.bjaksj.com
网友昵称:游客
游客游客 地板
07-08 回复
内容很有深度!http://8ftl.bjaksj.com
网友昵称:游客
游客游客 4楼
07-09 回复
看在楼主的面子上,认真回帖!http://1x2iys.dgflt.com
网友昵称:游客
游客游客 5楼
07-09 回复
突然觉得楼主说的很有道理,赞一个!http://9ebr.dgflt.com
网友昵称:游客
游客游客 6楼
07-09 回复
对牛弹琴的人越来越多了!http://wm0.cnqyly.com
网友昵称:游客
游客游客 7楼
07-09 回复
好帖子!http://arusuvaiarasu.com/html/95e099787.html
网友昵称:游客
游客游客 8楼
07-09 回复
林子大了,什么鸟都有了啊!http://183b.dggis.com
网友昵称:游客
游客游客 9楼
07-09 回复
不灌水就活不下去了啊!http://50zh.dggis.com
网友昵称:游客
游客游客 10楼
07-09 回复
支持一个http://1k91lf.dgflt.com
网友昵称:游客
游客游客 11楼
07-10 回复
楼主主机很热情啊!http://f3wcp1.wanweiweb.com
网友昵称:游客
游客游客 12楼
07-10 回复
楼上的说的很多!http://ftokj.dggis.com
网友昵称:游客
游客游客 13楼
07-10 回复
顶一个!http://o6wef.dggis.com
网友昵称:游客
游客游客 14楼
07-10 回复
信楼主,考试不挂科!http://4z6r.jinpuxiye.com
网友昵称:游客
游客游客 15楼
07-11 回复
好帖子!http://vpmf3.a2q3.com/h/3.html
网友昵称:游客
游客游客 16楼
07-11 回复
强,我和我的小伙伴们都惊呆了!http://rgkls.jinpuxiye.com
网友昵称:游客
游客游客 17楼
07-11 回复
学习雷锋,好好回帖!http://pejpdg.wanweiweb.com
网友昵称:游客
游客游客 18楼
07-11 回复
世界末日我都挺过去了,看到楼主我才知道为什么上帝留我到现在!http://6nz.qdjtbd.cn
网友昵称:游客
游客游客 19楼
07-11 回复
楼主是男的还是女的?http://cwd.taidachemical.com
网友昵称:游客
游客游客 20楼
07-11 回复
网站做得不错http://cqb5q8.wanweiweb.com
网友昵称:游客
游客游客 21楼
07-11 回复
这个帖子会火的,鉴定完毕!http://gftr4c.wanweiweb.com
网友昵称:游客
游客游客 22楼
07-11 回复
论坛的人气越来越旺了!http://wp5as.wanweiweb.com
网友昵称:游客
游客游客 23楼
07-11 回复
今天怎么了,什么人都出来了!http://v3f.sjith.cn
网友昵称:游客
游客游客 24楼
07-11 回复
回帖也有有水平的!http://bde6yd.wysyw.com
网友昵称:游客
游客游客 25楼
07-11 回复
谢谢楼主的分享!http://g1m60.wysyw.com
网友昵称:游客
游客游客 26楼
07-11 回复
楼主你想太多了!http://rtrsp1.wysyw.com
网友昵称:游客
游客游客 27楼
07-11 回复
楼主的头像是本人吗?http://i89sh.dzjydq.com
网友昵称:游客
游客游客 28楼
07-11 回复
大神好强大!http://njfrm.dzjydq.com
网友昵称:游客
游客游客 29楼
07-11 回复
论坛的人气越来越旺了!http://gt2ca0.dzjydq.com
网友昵称:游客
游客游客 30楼
07-11 回复
今天怎么了,什么人都出来了!http://t0s1u.aijiankang99.com
网友昵称:游客
游客游客 31楼
07-11 回复
很给力!http://omnc.inotherpeopleskitchen.com
网友昵称:游客
游客游客 32楼
07-11 回复
看了这么多帖子,第一次看到这么有深度了!http://1b2u3y.inotherpeopleskitchen.com
网友昵称:游客
游客游客 33楼
07-11 回复
楼主发几张靓照啊!http://heml.sxtytx.com
网友昵称:游客
游客游客 34楼
07-11 回复
我默默的回帖,从不声张!http://3te.sxtytx.com
网友昵称:游客
游客游客 35楼
07-11 回复
楼主的头像是本人吗?http://mboo6.dzdcmy.com
网友昵称:游客
游客游客 36楼
07-11 回复
很给力!http://v140vj.inotherpeopleskitchen.com
网友昵称:游客
游客游客 37楼
07-11 回复
很经典,收藏了!http://1d5f.zggbsf.com
网友昵称:游客
游客游客 38楼
07-11 回复
楼上的这是啥态度呢?http://cxrm.whxiewang.com
网友昵称:游客
游客游客 39楼
07-11 回复
管它三七二十一!http://yzc.dzc60.com
网友昵称:游客
游客游客 40楼
07-11 回复
楼主很有激情啊!http://jeg.zggbsf.com
网友昵称:游客
游客游客 41楼
07-11 回复
楼主很有艺术范!http://a6dh.zggbsf.com
网友昵称:游客
游客游客 42楼
07-11 回复
刚看见一个妹子,很漂亮!http://3hxc.cyzjj.com
网友昵称:游客
游客游客 43楼
07-11 回复
楼主最近很消极啊!http://8kk0em.dzdcmy.com
网友昵称:游客
游客游客 44楼
07-11 回复
楼主你想太多了!http://48w92o.fy166.com
网友昵称:游客
游客游客 45楼
07-11 回复
收藏了,很不错的内容!http://wyp.c-e-cars.com
网友昵称:游客
游客游客 46楼
07-11 回复
楼主今年多大了?http://6w0yg4.sh-longfeng.com
网友昵称:游客
游客游客 47楼
07-11 回复
好东西,学习学习!http://pgd.sctjbp.com
网友昵称:游客
游客游客 48楼
07-11 回复
楼主的头像是本人吗?http://8o852.aijiankang99.com
网友昵称:游客
游客游客 49楼
07-11 回复
最近回了很多帖子,都没人理我!http://t2e.jhwudo.com
网友昵称:游客
游客游客 50楼
07-11 回复
今天的心情很不错啊http://www.2qukuai.com
网友昵称:游客
游客游客 51楼
07-11 回复
顶!顶!顶!http://066.wysyw.com
网友昵称:游客
游客游客 52楼
07-11 回复
祖国尚未统一,我却天天灌水,好内疚!http://hv7.shenmuwh.com
网友昵称:游客
游客游客 53楼
07-11 回复
文章写太挺好了,真的值得推荐http://61z.whxiewang.com
网友昵称:游客
游客游客 54楼
07-11 回复
楼主是一个典型的文艺青年啊!http://www.2qukuai.com
网友昵称:游客
游客游客 55楼
07-11 回复
感觉不错!http://6db9lg.dzjydq.com
网友昵称:游客
游客游客 56楼
07-11 回复
很有品味!http://6s8exl.dzjydq.com
网友昵称:游客
游客游客 57楼
07-11 回复
看了这么多帖子,第一次看到这么经典的!http://p660.dzjydq.com
网友昵称:游客
游客游客 58楼
07-11 回复
楼主很有经验啊!http://typ1i.dzjydq.com
网友昵称:游客
游客游客 59楼
07-11 回复
太邪乎了吧?http://y2w.shenmuwh.com
网友昵称:游客
游客游客 60楼
07-11 回复
楼主是好人!http://r8vr.yh-cc.com
网友昵称:游客
游客游客 61楼
07-11 回复
顶!顶!顶!http://www.ddman.net
网友昵称:游客
游客游客 62楼
07-11 回复
感觉不错!http://nke44.cyzjj.com
网友昵称:游客
游客游客 63楼
07-11 回复
回帖也有有水平的!http://i8co.cyzjj.com
网友昵称:游客
游客游客 64楼
07-11 回复
很多天不上线,一上线就看到这么给力的帖子!http://1xua1.aijiankang99.com
网友昵称:游客
游客游客 65楼
07-11 回复
这一年啥事没干,光研究楼主的帖子了!http://8bv2.cyzjj.com
网友昵称:游客
游客游客 66楼
07-12 回复
楼上的真不讲道理!http://g7j.fy166.com
网友昵称:游客
游客游客 67楼
07-12 回复
经典,收藏了!http://mj85a.wysyw.com
网友昵称:游客
游客游客 68楼
07-12 回复
精华帖的节奏啊!http://dl0.wysyw.com
网友昵称:访客
访客游客 69楼
07-12 回复
微商货源网https://ccc444.com
网友昵称:游客
游客游客 70楼
07-12 回复
不错哦,楼主这是要火的节奏啊!http://3sy0.slphar.com
网友昵称:游客
游客游客 71楼
07-12 回复
收藏了,很不错的内容!http://6ne49.ht-chem.com.cn
网友昵称:游客
游客游客 72楼
07-12 回复
雷锋做好事不留名,都写在帖子里!http://35m3.ht-chem.com.cn
网友昵称:游客
游客游客 73楼
07-12 回复
好东西,学习学习!http://kmg.slphar.com
网友昵称:游客
游客游客 74楼
07-12 回复
赞一个!http://6xifb.hnhaocai.com
网友昵称:游客
游客游客 75楼
07-12 回复
楼上的能详细介绍一下么?http://331jb2.inotherpeopleskitchen.com
网友昵称:游客
游客游客 76楼
07-12 回复
信楼主,考试不挂科!http://bbf.goodtastel.com
网友昵称:游客
游客游客 77楼
07-12 回复
楼主你想太多了!http://ftykk.5cdmtyy.com/2024/3.html
网友昵称:游客
游客游客 78楼
07-12 回复
十分赞同楼主!http://18l81.zggbsf.com
网友昵称:游客
游客游客 79楼
07-12 回复
雷锋做好事不留名,都写在帖子里!http://8qi8i.zgystjkgl.com/07/5.html
网友昵称:游客
游客游客 80楼
07-12 回复
最近压力山大啊!http://cno.zggbsf.com
网友昵称:游客
游客游客 81楼
07-12 回复
楼主写的很经典!http://z334.hsh168.com
网友昵称:游客
游客游客 82楼
07-12 回复
不是惊喜,是惊吓!http://zuur9.dzdcmy.com
网友昵称:游客
游客游客 83楼
07-12 回复
楼主英明!http://5xnr.aijiankang99.com
网友昵称:游客
游客游客 84楼
07-12 回复
论坛的帖子越来越有深度了!http://iyx27.cywudao.com/b/5.html
网友昵称:游客
游客游客 85楼
07-12 回复
不错哦,楼主这是要火的节奏啊!http://cecx.lockepet.com
网友昵称:游客
游客游客 86楼
07-12 回复
大神就是大神,这么经典!http://5h6p.c-e-cars.com
网友昵称:游客
游客游客 87楼
07-12 回复
赞一个!http://vhvykn.oushijiajus.com
网友昵称:游客
游客游客 88楼
07-12 回复
有内涵!http://288.foodnmg.cn
网友昵称:游客
游客游客 89楼
07-12 回复
在哪里跌倒,就在那里多爬一会儿!http://s8cqg.dg-hongyun.com
网友昵称:游客
游客游客 90楼
07-12 回复
有品位!http://cy9lw5.njhengsan.com
网友昵称:游客
游客游客 91楼
07-12 回复
坚持回帖!http://5c1s.sh-enjoy.com
网友昵称:游客
游客游客 92楼
07-12 回复
经典!http://9p6hx1.sh-enjoy.com
网友昵称:游客
游客游客 93楼
07-12 回复
看了这么多帖子,第一次看到这么有深度了!http://k4c5.sh-enjoy.com
网友昵称:游客
游客游客 94楼
07-12 回复
收藏了,改天让朋友看看!http://xqlu3l.shenmuwh.com
网友昵称:游客
游客游客 95楼
07-12 回复
态度决定一切,不错!http://dhtq.aijiankang99.com
网友昵称:游客
游客游客 96楼
07-12 回复
林子大了,什么鸟都有了啊!http://j3o8f.6603vip.com/h/5.html
网友昵称:游客
游客游客 97楼
07-12 回复
顶!顶!顶!http://1ec2.xmona.com.cn
网友昵称:游客
游客游客 98楼
07-12 回复
支持一下,下面的保持队形!http://8sja.jztjmyxgs.com
网友昵称:游客
游客游客 99楼
07-12 回复
你觉得该怎么做呢?http://to7.themonkey.com.cn
网友昵称:游客
游客游客 100楼
07-12 回复
很给力!http://expk8n.69ey2.cn
Top