文章目录
- 一、项目复现的问题及其解决方案
- 1、 Cannot find DGL C++ graphbolt library
- 2、 “is“ with a literal. Did you mean “==“?”
- 3、运行SEG、SPG查看GATNet的网络结构
- 4、关于LI-FPN项目找不到数据粒度不匹配问题
- 5、关于LI-FPN项目num_samples为空
- 6、解决路径问题
- 7、 !ssize.empty() in function 'resize'
- 8、读取数据问题
- 9、关于yaml配置文件问题
- 10、下载所需数据
- 11、运行Absolution_openface.py
- 12、关于mmcv 的一系列问题
- 13、基准安装
- 14、'dgl.function' has no attribute 'copy_src'
- 15、ZINC.pkl 缺失问题
- 16、 'DGLHeteroGraph' on'dgl.heterograph'
- 17、 np.ndarray of type numpy.object_.
- 18、E: Unable to locate package tmux
- 二、项目开始训练
- 1、关于论文
- 2、训练完成
本期复现论文:Two-stage Temporal Modelling Framework for Video-based Depression Recognition using Graph Representation
https://ieeexplore.ieee.org/document/10572478
一、项目复现的问题及其解决方案
1、 Cannot find DGL C++ graphbolt library
FileNotFoundError: Cannot find DGL C++ graphbolt library
- 解决方法:在命令行终端执行
pip install dgl
没有效果后 在设置package 中进行安装
2、 “is“ with a literal. Did you mean “==“?”
“SyntaxWarning: “is“ with a literal. Did you mean “==“?”
原因:
从 python 3.8 开始,使用 is 和 is not 运算符时,会抛出 SyntaxWarning 语句警告信息
- 解决方法:将对应语句中is/is not用== 和 != 代替
MTB_DFE运行结果
3、运行SEG、SPG查看GATNet的网络结构
序列图表示(SEG)和频谱图表示(SPG)
- 连接服务器运行一下
4、关于LI-FPN项目找不到数据粒度不匹配问题
- 解决方法:发现这里的测试数据和训练数据居然是字符串,进行重新按格式导入数据集即可
5、关于LI-FPN项目num_samples为空
- 解决方法:还是数据集没有处理好,重新按格式导入数据集即可
6、解决路径问题
- 输出结果如下贴图,发现243_1/243_1 明显是截取目录出错了
- 解决方法:正确引入路径
7、 !ssize.empty() in function ‘resize’
- 解决方法:尝试对一个空的或未正确初始化的数据结构 进行大小调整(resize)操作。正确引入数据即可
8、读取数据问题
- 解决方法:还是数据集没有处理好, 导致读取数据问题
9、关于yaml配置文件问题
- 解决方法:如下图
10、下载所需数据
- 解决方法:Failed 原因可能是连接不上,多尝试即可
11、运行Absolution_openface.py
- 解决方法:查看结构和shape
12、关于mmcv 的一系列问题
#from mmcv.runner import get_dist_info, init_dist
from mmengine.dist.utils import get_dist_info, init_dist
- 解决方法:通过查找官方文档发现
13、基准安装
- 解决方法:等待安装即可
14、‘dgl.function’ has no attribute ‘copy_src’
AttributeError: module ‘dgl.function’ has no attribute ‘copy_src’
安装了最新的DGL包,之前的一些功能可能省略,或者是合并成了新功能
- 解决方法:修改为
dgl.function.copy_u
# msg = fn.copy_u(src='h', out='m')
msg = fn.copy_u('h', 'm')
15、ZINC.pkl 缺失问题
- 解决方法:等待安装即可
16、 ‘DGLHeteroGraph’ on’dgl.heterograph’
Can’t get attribute ‘DGLHeteroGraph’ on <module ‘dgl.heterograph’
解决方法
- 解决方法:找到服务器的lib 库中进行替换 site-packages
17、 np.ndarray of type numpy.object_.
TypeError: can’t convert np.ndarray of type numpy.object_. The only
supported types are: float64, float32, float16, complex64, complex128,
int64, int32, int16, int8, uint8, and bool.
- 解决方法:
labels = torch.tensor(np.array(labels)).unsqueeze(1)
labels=labels.astype(float)
labels = torch.tensor(labels, dtype=torch.float32).unsqueeze(1)
18、E: Unable to locate package tmux
sudo apt-get updatesudo apt-get install tmux
二、项目开始训练
- 调试了好久BUG 终于开始训练,不过在排除各种各样的BUG的时候学到了许多,收获满满!! 🚀🔥
1、关于论文
-
MTB模块:对于AVEC2013和AVEC2014数据集的实验,使用了由三个ResNet-.50网铬组成的MTB模块,这些网络在VG-GFace2上进行了预训练。具体来说,通过三个分支来考虑三个空间尺度,这些分支分别将输入序列(即包含30帧,每帧大小为3×112×112)编码为包含8顿的序列,大小分别为256×28×28、512×14×14和2048×4×4(即特征图的数量、高度和宽度)。
-
MTB模块的最终输出包括三个时序特征图集,每个时序特征图集由1024个特征图组成,大小为1×4×4。最后,将每个特征映射集转换为2048维的一维潜在特征向量,从而形成DFE模块的输入。
-
DFE模块:DFE模块由MTA模块和NS模块组成。MTA模块由三个独立捕获每个时间尺度显著信息的非局部模块和三个增强每个特征对相关信息的相互关注模块组成。NS模块是一个标准的编码器,包含四个1-D卷积层,分别有1024、512、128和32个内核。
-
在NS模块的训练过程中,共享的无凹陷编码器与凹陷编码器的架构相同。
-
抑郁症识别模型:采用的GAT模型包含一个GAT层,一个读出层和三个FC层,附加RLU激活函数。特别地,我们采用了“均值”运算来聚合读出层中节点的特征。
python main_molecules_graph_regression.py --dataset ZINC --gpu_id 0 --config
'configs/molecules_graph_regression_GatedGCN_ZINC_100k.json' # for GPU
python main_molecules_graph_regression.py --dataset AQSOL --gpu_id 0 --config
'configs/molecules_graph_regression_GatedGCN_AQSOL_100k.json' # for GPU
2、训练完成
- 后续补坑: 关于MAE与预期相差太大,大致原因已经找到,经过Debug发现,读的的源数据就是有问题的😢