RuntimeError: CUDA error: device-side assert triggered

背景:

        使用SAGEConv卷积层的图神经网络,网络架构如下

RuntimeError: CUDA error: device-side assert triggered_第1张图片

原因:

        我在卷积层之前改变了特征矩阵的维度,原本为[172,1,32] 现在改为了 [172,2,32]。导致了特征矩阵x在进行 “x = x.squeeze(1)” 操作时并没有将第二向量值去除(本矩阵中代表着未编码特征,需要在编码后删除)。导致出错。

解决方法:

        使用reshape代替x = x.squeeze(1)。

x = x.reshape(x.shape[0], self.embed_dim*self.feature_dim)

        其中

        self.embed_dim为编码特征维度,如:你想将特征编码为128、64、32位都可以。

        feature_dim特征维度,如:一个节点有几个特征点,[123,1234]就是两个特征点。

         最后全连接层也需要改变shape,以链接下一次卷积操作。

x = torch.sigmoid(self.lin3(x))  # batch个结果
x = x.reshape(x.shape[0])

 

你可能感兴趣的:(深度学习,cnn,人工智能)