研1日记9
1.理解conv1d和conv2d
a. 1和2处理的数据不同,1维数据和图像
b. 例如x输入形状为(32,19,512)时,卷积公式是针对512的,而19应该变换为参数中指定的输出通道。
2.“SE块”(Squeeze-and-Excitation Block)它可以帮助模型自动学习不同特征的重要性,然后增强有用的特征,抑制不那么重要的特征。SE块的工作流程就是:首先通过自适应平均池化“挤压”出全局信息,然后通过两次一维卷积和ReLU激活函数学习不同特征的重要性,最后通过Sigmoid函数将这些重要性转换为0到1之间的权重。这些权重随后可以用于对原始特征图进行重新标定,即根据权重增强或抑制不同的特征。
3.Pointwise Convolution(点卷积)
点卷积,也称为1x1卷积,是一种特殊的卷积操作,其中卷积核的大小为1x1(对于二维卷积是1x1x输入通道数,对于一维卷积是1x输入通道数)。这种卷积操作不会改变输入数据在空间维度(对于一维数据是长度,对于二维数据是高度和宽度)上的大小,但它可以改变数据的深度(即通道数),常用于构建更复杂的网络结构。
4. 位置编码
pos:位置,0~seq_len-1
i: 0~embedding/2 embedding = dmodel
5. zip (),对三维数组迭代时:
for x in zip(X):,X形状为(3,4,5),则循环3次,x的形状是(4,5)
6. torch.stack 把多个2维的张量合成一个3维的张量
7.如果你有一个形状为(3, 4, 5)
的tensor,并且你调用.sum(dim=0)
,那么你会沿着第一个维度(大小为3的那个维度)求和,结果是一个形状为(4, 5)
的tensor,因为第一个维度被求和掉了。
8.torch.max ,0是行,1是列
9. loss 和train_loss 的计算
9. 当你在使用val_loader
(或任何用于验证/测试的数据加载器)时,你会使用model.train()
时训练好的参数。但是,重要的是要注意,尽管你使用的是训练好的参数,但在进行验证或测试时,你应该将模型设置为评估模式(使用model.eval()
),而不是训练模式。