Linear基础上的creation

首先Linear 也是作用的向量的最后一个维度,nn.AvgPool1d也是作用的最后一个维度

所以对一段时间序列(Batch_size,channel number,Length)一般的各种操作都是作用在Length上面的,所以也就是最后一个维度。

比如我有一段数据x.shape=(batch_size=8,length=96,channel=7),我得先x.permute(0,2,1)一下把length放到最后一维,使我们的各种模块作用提取特征啥的,但网络模型的输出得和输入进行loss计算,又得x.permute(0,2,1)回来,所以这中间有两次permute.

比如自从Autoformer开始,后面的各种xxx_former都是这个框架,都permuter两次,主要还是因为autoformer里面的那个预数据处理(embedding部分)得到的数据是(batch,length,channel),而各种卷积啥的还有线形层(Linear)啥的作用的都是最后一维,咱们理应作用在Length维上,所以需要permute.

这里通过loss函数说明一下

MSELoss损失函数_Wanderer001的博客-CSDN博客_mseloss

torch.nn — PyTorch 1.12 documentation

以上为基础必备前提知识


想法1

1.首先nn.Identity这个方法打扰了,解释看这个链接

torch.nn.identity()方法详解_sigmoidAndRELU的博客-CSDN博客_torch.nn.identity() 

https://zhuanlan.zhihu.com/p/442092801 

想法2

 pytorch中六种常用的向量相似度评估方法 - 知乎

猜你喜欢

转载自blog.csdn.net/weixin_43332715/article/details/127031368