B*C*D*H*W的值并不是指输入模型的样本的总大小,它仅仅代表着输入模型的video数据的属性(形状)。
reshape
在reshape时,出现的报错“can't reshape of size input”之类的,是指:那些数据没法组成规定的形状。如下图所示。
Python reshape() 函数用法_pd.reshape-CSDN博客https://blog.csdn.net/weixin_43937759/article/details/106605680所以,reshape的规则就是,在(b1,c1,d1,h1,w1)变成(b2,c2,d2,h2,w2)时,要求b1*c1*d1*h1*w1==b2*c2*d2*h2*w2。
conv
但当进行三维卷积(conv3d)时,大部分的情况是,b*c*d*h*w的值发生改变。
PyTorch中的Conv1D/2D/3D/空洞卷积/反卷积/深度可分离卷积解释_conv2d-CSDN博客https://blog.csdn.net/weixin_39653948/article/details/107933173?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170386159816800215033989%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=170386159816800215033989&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-107933173-null-null.142^v99^pc_search_result_base2&utm_term=conv3d%E8%AF%A6%E8%A7%A3&spm=1018.2226.3001.4187conv提取出来了可能更高维、更抽象的特征,所以样本数据经过conv3d后,总的形状大小b*c*d*h*w是可以被改变的。一般都是c维度变成了指定的输出维度,d、h、w的话,影响因素有卷积核大小以及步长和填充。所以,conv后的总维度可能变大,可能变小,也可能不变
linear
linear可以映射任何一个维度。
是否可以同时映射两个维度,答案是肯定的。在实际应用中,我们可以根据需要设置Linear层的输入和输出维度,以实现对多个维度的同时映射。但需要注意的是,这样做可能会增加模型的复杂性和计算负担。
Pytorch 中的Conv1D(kernel_size=1)与Linear层的比较|极客笔记 (deepinout.com)https://deepinout.com/pytorch/pytorch-questions/312_pytorch_conv1d_with_kernel_size1_vs_linear_layer.html