1.首先阅读数据预处理的代码,确定送入神经网络的输入x的张量形状。比如现在有个语音输入特征张量x形状为[16, 1, 256, 40],【批量,通道数,像素宽度,特征维度】。
如果看不懂,可以先在网络的forward最开始进行print(x.shape)打印。
2.常见改变张量形状的方法:
(1)
#x形状为[16, 1, 256, 40]
x = x.view(x.size(0), x.size(1) * x.size(2), x.size(3))#x形状为【16,1*256,40】即合并了中间两个维度,变为【16,256,40】
x = x.permute(0, 2, 1) #调整维度顺序,现在x形状为【批量,特征维度,像素宽度】
(2)
#x形状为[16, 2, 256, 40]
x = x[:, 0, :, :]#取第一个通道特征,x形状为【16,1,256,40】
x = x.squeeze(1)#删除值为1的维度,现在x形状为【16,256,40】