pytorch学习笔记(六)——pytorch进阶教程之合并与分割

pytorch学习笔记(六)——pytorch进阶教程之合并与分割

  • 目录
    • 合并----cat
    • 合并----stack
    • 拆分----split
    • 拆分----chunk

目录

合并----cat

pytorch学习笔记(六)——pytorch进阶教程之合并与分割_第1张图片

假设有两份数据,一份是属于班级1-4的成绩,一份是属于班级5-9的成绩。
现在要将两份数据进行合并,使用cat函数,参数一传入要合并的数据,用list形式,参数二传入合并的维度dim=0,说明合并第一个维度,因此[4,32,8]合并[5,32,8]==》[9,32,8]

pytorch学习笔记(六)——pytorch进阶教程之合并与分割_第2张图片
cat函数中一个重要的传入参数是dimension,如图所示,假设有三个[3,4]的数据,设置dim=0,也就是合并dim0,得到的数据为[12,4]。假设合并[4,4]和[4,3]的数据,dim=1,也就是合并dim1。得到的数据为[4,7]。
需要注意的有两点:1.要合并的数据维度数要一致。2.除了要合并的dim长度可以不一样,其他dim长度必须保持一致。

pytorch学习笔记(六)——pytorch进阶教程之合并与分割_第3张图片

合并----stack

pytorch学习笔记(六)——pytorch进阶教程之合并与分割_第4张图片
与cat合并数据方式不同的是,stack则是创建一个新的维度来合并数据
进行操作的两个tensor必须维度一致,size一致,参数dim指定要创建的维度下标,假如现有两个班级,每个班级各有32名同学,记录8门课成绩,如果用cat函数合并则变为记录64名同学8门课成绩,无法体现出班级的概念。这时候就应该采用stack函数在添加上dim0,数据合并后变为[2,32,8]。pytorch学习笔记(六)——pytorch进阶教程之合并与分割_第5张图片

拆分----split

split根据长度来拆分
pytorch学习笔记(六)——pytorch进阶教程之合并与分割_第6张图片
split有两种使用方法,如果要求数据分片后所有分片的长度保持一致,则直接传入一个标量,如图中split(1,dim=0)表示第一个维度,分片后每个分片长度都是1。如果要求数据分片后所有分片的长度视情况而定,则传入一个list,如图中split([1,1],dim=0)表示第一个维度,分片后分片长度依次是1,1。最后一行代码报错是因为分片长度是2,而原数据也是2,只能返回一个分片。

拆分----chunk

chunk按照数量进行拆分
pytorch学习笔记(六)——pytorch进阶教程之合并与分割_第7张图片

chunk第一个参数传入的是要拆分的数量,例子中传入2,说明要等分成2个分片。

你可能感兴趣的:(pytorch)