Machine learning 在某些节点特征子集上构建KNN图

Machine learning 在某些节点特征子集上构建KNN图,machine-learning,deep-learning,pytorch,dgl,Machine Learning,Deep Learning,Pytorch,Dgl,我有一个点云,我想使用一个图形神经网络。点云中的每个点都以其位置坐标及其颜色为特征。因此单个节点是(X,Y,Z,C) 现在我想在这上面应用一个边卷积(如上所述,要做到这一点,我应该在(X,Y,Z)(而不是在C)上构建一个最近邻图),然后使用所有4个属性作为我的神经网络的特征 有什么干净有效的方法可以做到这一点?(我有很多数据,所以我想很好地进行批处理和整理)假设你有一个形状为(NUM_POINTS,4)的张量pc,其中每一行都是(X,Y,Z,C),那么你可以使用sklearn,如下所示: 从sk

我有一个点云,我想使用一个图形神经网络。点云中的每个点都以其位置坐标及其颜色为特征。因此单个节点是
(X,Y,Z,C)

现在我想在这上面应用一个边卷积(如上所述,要做到这一点,我应该在
(X,Y,Z)
而不是在C)上构建一个最近邻图),然后使用所有4个属性作为我的神经网络的特征


有什么干净有效的方法可以做到这一点?(我有很多数据,所以我想很好地进行批处理和整理)

假设你有一个形状为
(NUM_POINTS,4)
的张量
pc
,其中每一行都是
(X,Y,Z,C)
,那么你可以使用
sklearn
,如下所示:

从sklearn.neights导入近邻
导入dgl
k=3#你想要的邻居数量
neigh=最近的邻居(n_邻居=k)
neigh.fit(pc[:,:3].numpy())#仅选择(X,Y,Z)
knn=neigh.kneighbors_图()
曲线图=从_scipy开始的dgl(knn)
graph.nda['x']=pc
我建议将这些图形保存到磁盘,这样就不会在每次训练等时计算它们