一、前言
上周学习了数学表达式、了解了DDNet的网络框架。
在本周,寻找改进网络框架与超参数的灵感,并跑代码查看效果。另外,完成了毕业设计开题报告任务。
二、实验情况
2.1 结果展示
最近的实验使用的数据集是CurveFault-A,训练的数据量大小为5000,epoch=120,batch_size=64,实验结果展示如下:
之前使用数据量大小为500的CurveFault-A数据集在OpenFWI上进行训练,epoch=240,batch_size=64,部分结果展示如下:
另外,对test.py文件中的显示函数进行了调整,部分展示结果如下:
可以看到,MAE与MSE有明显下降,但是SSIM的变化感觉不太大,这种变化是正常的吗?
2.2 灵感收集
- MCA:Multidimensional collaborative attention in deep convolutional neural networks for image recognition(用于图像识别的深度卷积神经网络中的多维协作注意力)
- 文章链接:https://doi.org/10.1016/j.engappai.2023.107079
- 代码:https://github.com/ndsclark/MCANet
该模块实现了一个称为"MCALayer"(Multi-modal Channel Attention Layer)的注意力机制,主要用于增强神经网络在不同通道之间的交互和信息整合。
MCALayer具有以下几个关键组件和特点:
- MCAGate模块:MCALayer包含了MCAGate模块,是一个多模态的注意力机制,利用池化操作(平均池化、最大池化、标准差池化)来提取不同通道间的特征信息,这些不同类型的池化操作有助于捕捉通道间的不同统计特性。
- 通道间的交互:MCALayer具有三种不同类型的通道间交互方式,分别是水平-通道(h-cw)、垂直-通道(w-hc)和通道-通道(c-hw)交互,这些交互方式分别针对不同的维度,有助于模型更好地理解和整合不同通道之间的信息。
- 空间维度的处理:根据no_spatial参数的设置,MCALayer可以选择是否进行空间维度上的交互,如果no_spatial为True,只会进行通道间的交互;如果为False,还会进行空间维度上的交互。
- 权重融合:在不同的通道交互之后,MCALayer使用权重融合来整合不同池化方式的信息,通过学习的方式,模型可以决定如何分配不同池化方式的重要性。
- 多尺度核大小:MCALayer中的和大小会根据输入通道数自动选择,以增强模块的适用性。
总的来说,MCALayer通过多模态的注意力机制,引入不同类型的通道交互和池化操作,从而可以更好地捕捉特征之间的关系,提高模型的特征表示能力,有助于在计算机视觉任务中提高性能,如图像分类、目标检测和语义分割。
此外,MCALayer的模块化设计(即插即用)使得它可以方便地嵌入到神经网络中。
三、小结
- 1.参数的调整是一个较为漫长的过程,有时候想法很美好,但是最后的结果让人失望,理论和实际差距较大。
- 2.实验的数据集大小、epoch、batch_size等设置为多少呢?