分享一下自己目前在维护的Github项目,由于本人博士阶段接触了一个全新的研究方向-----使用机器学习、强化学习、深度学习等方法解决组合优化问题,维护这个项目的目的:
(1)记录自己阅读过的paper,同时分享一下对某些paper的见解;
(2)方便其他的初学者或研究生查阅最新的paper;
⭐️ 项目链接:Welcome COP Zoo
一、前言
今天要分享的方法是torch.chunk方法,这个方法也是第一次遇到,为避免自己遗忘,特在此记录!
二、方法解析
chunk的译文为"块"的含义,在我们没看官方文档之前,直观的理解应该是:按照某种规则将一个tensor划分为若干个块。
官方文档对torch.chunk方法的解析为:尝试将一个tensor划分为若干个chunk,每个chunk为输入tensor的view,方法的返回值为若干个chunk组成的元组tuple。
chunk方法的输入参数有以下三个:
- input:输入的tensor,类型为tensor;
- chunks:chunk的数目,类型为int;
- dim:沿着哪个维度进行划分,类型为int;
一句话总结:对于一个输入tensor,torch.chunk方法会按照dim指定的维度将输入tensor划分为若干个chunk,划分的数量为chunks。
值得注意的有以下几点:
(1)使用torch.chunk函数后,返回的chunk数有可能比指定的数目要少;
(2)如果dim指定的维度能够被参数chunks整除,那么返回的chunk具有相同的size;
(3)如果dim指定的维度不能被参数chunks整除,除最后一个chunk外,其他的chunk具有相同的size。
三、案例分析
3.1 案列1-输入tensor为2维
-
dim=0
-
dim=1
3.2 案例2-输入tensor为3维
-
dim=0
-
dim=1
-
dim=2
参考文献
[1] https://pytorch.org/docs/stable/generated/torch.chunk.html#torch.chunk