2023.5.22 周一
重新整理思路,再次看代码和论文,找作者的联系方式
2023.5.23 周二
今天联系了论文的作者,清楚了论文中使用的结果是在InterHand2.6mV0上进行训练的测试的,所以论文中的结果参考意义不是很大(当时写论文时还没有V1)。作者告知要参考GitHub上在InterHand2.6mV1的测试结果。所以按照新版本的代码继续复现,之前已经跑了70epoch,接着进行训练。但这里作者batch_size和学习率没有告知。询问作者可视化过程,作者说这部分代码没有开源,只能自己加入代码,看可视化的结果!
我按照之前的设置,设置batch_size = 32,lr = 1e-4,在服务器上训练
下午听取了毕业生答辩!
2023.5.24-5.25 周三—周四
周三下午有课和周四上午英语考试,时间紧,但GCN前向过程代码计划基本完成
计划:修改GCN的前向过程代码,调通
1、调试过程中重新改写了GCN的邻接矩阵,将其分为right_adj_mx, left_adj_mx右手和左手的邻接矩阵
之前的代码:
改写后的代码:
在改写过程中出现了下面的错误:维度超出了范围
所以对提取左手骨架边进行了修改
修改的代码如下:
left_edges = [(i, j - num_joints) for i, j in left_edges],修改j的值
2、对self.gcn = SemGCN(adj, hid_dim=512, coords_dim=[3, 42], num_layers=4, nodes_group=None, p_dropout=None)中的hid_dim,coords_dim进行了修改,以匹配其前向过程的计算
根据输入的维度 [32, 4, 21, 3]
,我们可以得出以下信息:
Batch_size: 32 输入特征维度: 4 节点数量: 21 节点坐标维度: 3,在给定的代码中,hid_dim
代表隐藏层的维度,coords_dim
表示输入和输出的节点坐标维度。
对于hid_dim
,可以选择一个合适的整数值,用于指定隐藏层的维度大小。这个值可以根据问题的复杂度和数据集的特征来选择。在这里,将使用hid_dim = 512
。
对于coords_dim
,根据代码的实现,输入和输出的节点坐标维度应该是相同的。由于邻接矩阵的维度是42x42,因此输入和输出的节点数量都应为42。而节点坐标维度为3,保持不变。
2023.5.26 周五
解决上面错误,输入的应该是2D或3D,但输入的是4D,所以重塑了 形状维度,成为3D的
加入semGCN模块之后,简单运行了一下,感觉把该模块放错了位置,不能进行级联循环迭代,所以更改了它的位置,将其放在预测关节之后
semGCN主要是增强手关节信息,下面是新更改位置的代码
目前,semGCN模块改写加入已完成,准备运行检查其是否起到一定的效果!!!