P5 PyTorch 合并与分割

本文介绍了如何使用PyTorch库中的cat函数合并张量,stack函数在指定维度添加新维,split和chunk用于张量拆分。通过实例演示了合并不同维度的统计数据,以及在处理多班级成绩数据时的操作技巧。
摘要由CSDN通过智能技术生成

前言:

    

目录

  1.     cat
  2.    stack
  3.    split
  4.     chunk

一  cat(合并)

      

      df = torch.cat([df1,df2,df3],dim=0)

      要合并的维度可以不相等,其它维度大小必须一样

      应用场景:

      比如有两个统计数据[class,students,scores]

      A = [4,32,8],    4个班级,每班32人,每个人8个科目的考试成绩

      B=  [5,32,8]    5个班级,每班32人,每个人8个科目的考试成绩

      现在合并成一个张量

       C= [9,32,8]  9个班级,每班32人,每个人8个科目的考试成绩

       

   1.2  例2 

        【students,score】

         df1 = [4,4]: 4个学生,4科成绩

        df2 = [4,4] 4个学生,4科成绩

         df3 = [4,4] 4个学生,4科成绩

        通过cat([df1,df2,df3], dim=0)后得到

         df =[12,4] 12个学生,4科成绩

 

 

 1.3  例3

    

    torch.Size([4, 3, 32, 32])


二  stack(合并)

     原理:

     在指定的维度前面创建一个新的维度,需要stack的张量必须shape一样

    

    如上两个班级

    df1=[32,8] 32个人,8科成绩

    df2=[32,8] 32个人,8 科成绩

    最后df的shape 如下:

    torch.Size([2, 32, 8])

    大小不一样出错例子


   三 split (拆分)

     按指定的长度,在指定的维度上面进行拆分。

   

   比如 4个班,每班8人,3科成绩

   torch.Size([1, 8, 3])  1个重点班
   torch.Size([3, 8, 3])  3个普通班


四 chunk 拆分

     按指定的数量,在指定的维度上面拆分

  6个班,每班8个学生,3科成绩.

  拆分成两组,每组3个班,

 输出:

torch.Size([3, 8, 3]) torch.Size([3, 8, 3])

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值