欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > torch_unbindtorch_chunk

torch_unbindtorch_chunk

2025/2/12 20:50:33 来源:https://blog.csdn.net/scar2016/article/details/145518928  浏览:    关键词:torch_unbindtorch_chunk

文章目录

  • 1. torch.unbind
  • 2. torch.chunk

1. torch.unbind

torch.unbind的作用是将矩阵沿着指定维度进行解耦分割成一个

  • 输入矩阵A = [2,3,4]
  • torch.unbind(input=A,dim=0] , 按照第0维分割,形成2个[3,4],[3,4]矩阵
  • torch.unbind(input=A,dim=1] , 按照第1维分割,形成3个[2,4],[2,4],[2,4]矩阵
  • torch.unbind(input=A,dim=2] , 按照第2维分割,形成4个[2,3],[2,3],[2,3],[2,3]矩阵
    在这里插入图片描述
  • python 代码
import torch
import torch.nn as nntorch.set_printoptions(precision=3, sci_mode=False)if __name__ == "__main__":run_code = 0batch_size = 2image_w = 3image_h = 4image_total = batch_size * image_w * image_himage = torch.arange(image_total).reshape(batch_size, image_w, image_h)image_unbind0 = torch.unbind(input=image, dim=0)image_unbind1 = torch.unbind(input=image, dim=1)image_unbind2 = torch.unbind(input=image, dim=2)print(f"image=\n{image}")print(f"image_unbind0=\n{image_unbind0}")print(f"image_unbind1=\n{image_unbind1}")print(f"image_unbind2=\n{image_unbind2}")
  • 结果:
image=
tensor([[[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]],[[12, 13, 14, 15],[16, 17, 18, 19],[20, 21, 22, 23]]])
image_unbind0=
(tensor([[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]]), tensor([[12, 13, 14, 15],[16, 17, 18, 19],[20, 21, 22, 23]]))
image_unbind1=
(tensor([[ 0,  1,  2,  3],[12, 13, 14, 15]]), tensor([[ 4,  5,  6,  7],[16, 17, 18, 19]]), tensor([[ 8,  9, 10, 11],[20, 21, 22, 23]]))
image_unbind2=
(tensor([[ 0,  4,  8],[12, 16, 20]]), tensor([[ 1,  5,  9],[13, 17, 21]]), tensor([[ 2,  6, 10],[14, 18, 22]]), tensor([[ 3,  7, 11],[15, 19, 23]]))

2. torch.chunk

torch.chunk 的作用是将矩阵按照指定维度分割成指定份数,先按照份数来均匀切割,最后的不够就单独保留
在这里插入图片描述

  • python
import torch
import torch.nn as nntorch.set_printoptions(precision=3, sci_mode=False)if __name__ == "__main__":run_code = 0batch_size = 2image_w = 3image_h = 4image_total = batch_size * image_w * image_himage = torch.arange(image_total).reshape(batch_size, image_w, image_h)image_unbind0 = torch.unbind(input=image, dim=0)image_unbind1 = torch.unbind(input=image, dim=1)image_unbind2 = torch.unbind(input=image, dim=2)print(f"image=\n{image}")print(f"image_unbind0=\n{image_unbind0}")print(f"image_unbind1=\n{image_unbind1}")print(f"image_unbind2=\n{image_unbind2}")image_chunk0 = torch.chunk(input=image,dim=0,chunks=2)image_chunk1 = torch.chunk(input=image,dim=1,chunks=2)image_chunk2 = torch.chunk(input=image,dim=2,chunks=2)print(f"image_chunk0=\n{image_chunk0}")print(f"image_chunk1=\n{image_chunk1}")print(f"image_chunk2=\n{image_chunk2}")
  • python 结果
image=
tensor([[[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]],[[12, 13, 14, 15],[16, 17, 18, 19],[20, 21, 22, 23]]])
image_unbind0=
(tensor([[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]]), tensor([[12, 13, 14, 15],[16, 17, 18, 19],[20, 21, 22, 23]]))
image_unbind1=
(tensor([[ 0,  1,  2,  3],[12, 13, 14, 15]]), tensor([[ 4,  5,  6,  7],[16, 17, 18, 19]]), tensor([[ 8,  9, 10, 11],[20, 21, 22, 23]]))
image_unbind2=
(tensor([[ 0,  4,  8],[12, 16, 20]]), tensor([[ 1,  5,  9],[13, 17, 21]]), tensor([[ 2,  6, 10],[14, 18, 22]]), tensor([[ 3,  7, 11],[15, 19, 23]]))
image_chunk0=
(tensor([[[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]]]), tensor([[[12, 13, 14, 15],[16, 17, 18, 19],[20, 21, 22, 23]]]))
image_chunk1=
(tensor([[[ 0,  1,  2,  3],[ 4,  5,  6,  7]],[[12, 13, 14, 15],[16, 17, 18, 19]]]), tensor([[[ 8,  9, 10, 11]],[[20, 21, 22, 23]]]))
image_chunk2=
(tensor([[[ 0,  1],[ 4,  5],[ 8,  9]],[[12, 13],[16, 17],[20, 21]]]), tensor([[[ 2,  3],[ 6,  7],[10, 11]],[[14, 15],[18, 19],[22, 23]]]))

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com