And was wondering if current version is working, since I have faced some error.
1.
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
Cell In[1], [line 12](vscode-notebook-cell:?execution_count=1&line=12)
[7](vscode-notebook-cell:?execution_count=1&line=7) data_list = [Data(x=torch.tensor([[-1], [0], [1]], dtype=torch.float),
[8](vscode-notebook-cell:?execution_count=1&line=8) edge_index=torch.tensor([[0, 1, 1, 2], [1, 0, 2, 1]], dtype=torch.long))]
[10](vscode-notebook-cell:?execution_count=1&line=10) batch = Batch.from_data_list(data_list)
---> [12](vscode-notebook-cell:?execution_count=1&line=12) out = model(batch)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)
[1530](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1530) return self._compiled_call_impl(*args, **kwargs) # type: ignore[misc]
[1531](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1531) else:
-> [1532](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1532) return self._call_impl(*args, **kwargs)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1541, in Module._call_impl(self, *args, **kwargs)
[1536](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1536) # If we don't have any hooks, we want to skip the rest of the logic in
[1537](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1537) # this function, and just call forward.
[1538](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1538) if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
[1539](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1539) or _global_backward_pre_hooks or _global_backward_hooks
[1540](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1540) or _global_forward_hooks or _global_forward_pre_hooks):
-> [1541](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1541) return forward_call(*args, **kwargs)
[1543](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1543) try:
[1544](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1544) result = None
File c:\Users\kkgg3\point-gnn-pytorch\src\point_gnn_pytorch\models.py:143, in PointGNN_Normalization.forward(self, data)
[140](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:140) pos = x
[142](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:142) # 1. do projection into high-dimensional space
--> [143](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:143) x = self.project(x)
[144](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:144) x = F.leaky_relu(x)
[146](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:146) # 2. apply various PointGNN convolutions
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)
[1530](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1530) return self._compiled_call_impl(*args, **kwargs) # type: ignore[misc]
[1531](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1531) else:
-> [1532](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1532) return self._call_impl(*args, **kwargs)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1541, in Module._call_impl(self, *args, **kwargs)
[1536](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1536) # If we don't have any hooks, we want to skip the rest of the logic in
[1537](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1537) # this function, and just call forward.
[1538](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1538) if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
[1539](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1539) or _global_backward_pre_hooks or _global_backward_hooks
[1540](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1540) or _global_forward_hooks or _global_forward_pre_hooks):
-> [1541](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1541) return forward_call(*args, **kwargs)
[1543](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1543) try:
[1544](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1544) result = None
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch_geometric\nn\models\mlp.py:231, in MLP.forward(self, x, batch, batch_size, return_emb)
[228](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch_geometric/nn/models/mlp.py:228) # If `plain_last=True`, then `len(norms) = len(lins) -1, thus skipping
[229](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch_geometric/nn/models/mlp.py:229) # the execution of the last layer inside the for-loop.
[230](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch_geometric/nn/models/mlp.py:230) for i, (lin, norm) in enumerate(zip(self.lins, self.norms)):
--> [231](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch_geometric/nn/models/mlp.py:231) x = lin(x)
[232](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch_geometric/nn/models/mlp.py:232) if self.act is not None and self.act_first:
[233](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch_geometric/nn/models/mlp.py:233) x = self.act(x)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)
[1530](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1530) return self._compiled_call_impl(*args, **kwargs) # type: ignore[misc]
[1531](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1531) else:
-> [1532](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1532) return self._call_impl(*args, **kwargs)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1541, in Module._call_impl(self, *args, **kwargs)
[1536](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1536) # If we don't have any hooks, we want to skip the rest of the logic in
[1537](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1537) # this function, and just call forward.
[1538](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1538) if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
[1539](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1539) or _global_backward_pre_hooks or _global_backward_hooks
[1540](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1540) or _global_forward_hooks or _global_forward_pre_hooks):
-> [1541](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1541) return forward_call(*args, **kwargs)
[1543](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1543) try:
[1544](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1544) result = None
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch_geometric\nn\dense\linear.py:147, in Linear.forward(self, x)
[141](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch_geometric/nn/dense/linear.py:141) def forward(self, x: Tensor) -> Tensor:
[142](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch_geometric/nn/dense/linear.py:142) r"""Forward pass.
[143](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch_geometric/nn/dense/linear.py:143)
[144](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch_geometric/nn/dense/linear.py:144) Args:
[145](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch_geometric/nn/dense/linear.py:145) x (torch.Tensor): The input features.
[146](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch_geometric/nn/dense/linear.py:146) """
--> [147](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch_geometric/nn/dense/linear.py:147) return F.linear(x, self.weight, self.bias)
RuntimeError: mat1 and mat2 shapes cannot be multiplied (3x1 and 3x32)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[1], [line 12](vscode-notebook-cell:?execution_count=1&line=12)
[7](vscode-notebook-cell:?execution_count=1&line=7) data_list = [Data(x=torch.tensor([[-1], [0], [1]], dtype=torch.float),
[8](vscode-notebook-cell:?execution_count=1&line=8) edge_index=torch.tensor([[0, 1, 1, 2], [1, 0, 2, 1]], dtype=torch.long))]
[10](vscode-notebook-cell:?execution_count=1&line=10) batch = Batch.from_data_list(data_list)
---> [12](vscode-notebook-cell:?execution_count=1&line=12) out = model(batch)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)
[1530](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1530) return self._compiled_call_impl(*args, **kwargs) # type: ignore[misc]
[1531](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1531) else:
-> [1532](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1532) return self._call_impl(*args, **kwargs)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1541, in Module._call_impl(self, *args, **kwargs)
[1536](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1536) # If we don't have any hooks, we want to skip the rest of the logic in
[1537](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1537) # this function, and just call forward.
[1538](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1538) if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
[1539](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1539) or _global_backward_pre_hooks or _global_backward_hooks
[1540](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1540) or _global_forward_hooks or _global_forward_pre_hooks):
-> [1541](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1541) return forward_call(*args, **kwargs)
[1543](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1543) try:
[1544](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1544) result = None
File c:\Users\kkgg3\point-gnn-pytorch\src\point_gnn_pytorch\models.py:147, in PointGNN_Normalization.forward(self, data)
[144](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:144) x = F.leaky_relu(x)
[146](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:146) # 2. apply various PointGNN convolutions
--> [147](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:147) x, pos, edge_index, edge_weight = self.convolutions((x, pos, edge_index, edge_weight))
[149](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:149) # 3.
[150](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:150) x = global_mean_pool(x, data.batch)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)
[1530](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1530) return self._compiled_call_impl(*args, **kwargs) # type: ignore[misc]
[1531](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1531) else:
-> [1532](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1532) return self._call_impl(*args, **kwargs)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1541, in Module._call_impl(self, *args, **kwargs)
[1536](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1536) # If we don't have any hooks, we want to skip the rest of the logic in
[1537](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1537) # this function, and just call forward.
[1538](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1538) if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
[1539](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1539) or _global_backward_pre_hooks or _global_backward_hooks
[1540](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1540) or _global_forward_hooks or _global_forward_pre_hooks):
-> [1541](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1541) return forward_call(*args, **kwargs)
[1543](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1543) try:
[1544](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1544) result = None
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\container.py:217, in Sequential.forward(self, input)
[215](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/container.py:215) def forward(self, input):
[216](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/container.py:216) for module in self:
--> [217](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/container.py:217) input = module(input)
[218](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/container.py:218) return input
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)
[1530](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1530) return self._compiled_call_impl(*args, **kwargs) # type: ignore[misc]
[1531](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1531) else:
-> [1532](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1532) return self._call_impl(*args, **kwargs)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1541, in Module._call_impl(self, *args, **kwargs)
[1536](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1536) # If we don't have any hooks, we want to skip the rest of the logic in
[1537](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1537) # this function, and just call forward.
[1538](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1538) if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
[1539](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1539) or _global_backward_pre_hooks or _global_backward_hooks
[1540](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1540) or _global_forward_hooks or _global_forward_pre_hooks):
-> [1541](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1541) return forward_call(*args, **kwargs)
[1543](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1543) try:
[1544](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1544) result = None
File c:\Users\kkgg3\point-gnn-pytorch\src\point_gnn_pytorch\models.py:69, in ConvBlock.forward(self, arguments)
[66](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:66) def forward(self, arguments):
[67](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:67) x, pos, edge_index, edge_weight = arguments
---> [69](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:69) x = self.conv(x, pos, edge_index, edge_weight)
[71](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:71) x = self.bn(x)
[73](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:73) x = self.activation(x)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)
[1530](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1530) return self._compiled_call_impl(*args, **kwargs) # type: ignore[misc]
[1531](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1531) else:
-> [1532](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1532) return self._call_impl(*args, **kwargs)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1541, in Module._call_impl(self, *args, **kwargs)
[1536](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1536) # If we don't have any hooks, we want to skip the rest of the logic in
[1537](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1537) # this function, and just call forward.
[1538](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1538) if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
[1539](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1539) or _global_backward_pre_hooks or _global_backward_hooks
[1540](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1540) or _global_forward_hooks or _global_forward_pre_hooks):
-> [1541](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1541) return forward_call(*args, **kwargs)
[1543](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1543) try:
[1544](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1544) result = None
File c:\Users\kkgg3\point-gnn-pytorch\src\point_gnn_pytorch\models.py:31, in PointGNNConv_Edgeweight.forward(self, x, pos, edge_index, edge_weight)
[29](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:29) """"""
[30](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:30) # propagate_type: (x: Tensor, pos: Tensor)
---> [31](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:31) out = self.propagate(edge_index, x=x, pos=pos, edge_weight=edge_weight, size=None)
[32](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:32) out = self.mlp_g(out)
[33](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:33) return x + out
TypeError: propagate() got an unexpected keyword argument 'edge_weight'
3.
If I remove edge_weight=edge_weight from line 31 out = self.propagate(edge_index, x=x, pos=pos, edge_weight=edge_weight, size=None) in models.py
I get
---------------------------------------------------------------------------
UnboundLocalError Traceback (most recent call last)
Cell In[1], [line 12](vscode-notebook-cell:?execution_count=1&line=12)
[7](vscode-notebook-cell:?execution_count=1&line=7) data_list = [Data(x=torch.tensor([[-1], [0], [1]], dtype=torch.float),
[8](vscode-notebook-cell:?execution_count=1&line=8) edge_index=torch.tensor([[0, 1, 1, 2], [1, 0, 2, 1]], dtype=torch.long))]
[10](vscode-notebook-cell:?execution_count=1&line=10) batch = Batch.from_data_list(data_list)
---> [12](vscode-notebook-cell:?execution_count=1&line=12) out = model(batch)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)
[1530](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1530) return self._compiled_call_impl(*args, **kwargs) # type: ignore[misc]
[1531](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1531) else:
-> [1532](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1532) return self._call_impl(*args, **kwargs)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1541, in Module._call_impl(self, *args, **kwargs)
[1536](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1536) # If we don't have any hooks, we want to skip the rest of the logic in
[1537](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1537) # this function, and just call forward.
[1538](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1538) if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
[1539](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1539) or _global_backward_pre_hooks or _global_backward_hooks
[1540](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1540) or _global_forward_hooks or _global_forward_pre_hooks):
-> [1541](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1541) return forward_call(*args, **kwargs)
[1543](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1543) try:
[1544](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1544) result = None
File c:\Users\kkgg3\point-gnn-pytorch\src\point_gnn_pytorch\models.py:147, in PointGNN_Normalization.forward(self, data)
[144](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:144) x = F.leaky_relu(x)
[146](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:146) # 2. apply various PointGNN convolutions
--> [147](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:147) x, pos, edge_index, edge_weight = self.convolutions((x, pos, edge_index, edge_weight))
[149](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:149) # 3.
[150](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:150) x = global_mean_pool(x, data.batch)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)
[1530](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1530) return self._compiled_call_impl(*args, **kwargs) # type: ignore[misc]
[1531](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1531) else:
-> [1532](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1532) return self._call_impl(*args, **kwargs)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1541, in Module._call_impl(self, *args, **kwargs)
[1536](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1536) # If we don't have any hooks, we want to skip the rest of the logic in
[1537](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1537) # this function, and just call forward.
[1538](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1538) if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
[1539](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1539) or _global_backward_pre_hooks or _global_backward_hooks
[1540](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1540) or _global_forward_hooks or _global_forward_pre_hooks):
-> [1541](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1541) return forward_call(*args, **kwargs)
[1543](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1543) try:
[1544](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1544) result = None
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\container.py:217, in Sequential.forward(self, input)
[215](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/container.py:215) def forward(self, input):
[216](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/container.py:216) for module in self:
--> [217](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/container.py:217) input = module(input)
[218](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/container.py:218) return input
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)
[1530](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1530) return self._compiled_call_impl(*args, **kwargs) # type: ignore[misc]
[1531](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1531) else:
-> [1532](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1532) return self._call_impl(*args, **kwargs)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1541, in Module._call_impl(self, *args, **kwargs)
[1536](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1536) # If we don't have any hooks, we want to skip the rest of the logic in
[1537](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1537) # this function, and just call forward.
[1538](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1538) if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
[1539](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1539) or _global_backward_pre_hooks or _global_backward_hooks
[1540](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1540) or _global_forward_hooks or _global_forward_pre_hooks):
-> [1541](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1541) return forward_call(*args, **kwargs)
[1543](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1543) try:
[1544](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1544) result = None
File c:\Users\kkgg3\point-gnn-pytorch\src\point_gnn_pytorch\models.py:69, in ConvBlock.forward(self, arguments)
[66](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:66) def forward(self, arguments):
[67](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:67) x, pos, edge_index, edge_weight = arguments
---> [69](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:69) x = self.conv(x, pos, edge_index, edge_weight)
[71](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:71) x = self.bn(x)
[73](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:73) x = self.activation(x)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1532, in Module._wrapped_call_impl(self, *args, **kwargs)
[1530](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1530) return self._compiled_call_impl(*args, **kwargs) # type: ignore[misc]
[1531](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1531) else:
-> [1532](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1532) return self._call_impl(*args, **kwargs)
File c:\Users\kkgg3\.conda\envs\tdl\Lib\site-packages\torch\nn\modules\module.py:1541, in Module._call_impl(self, *args, **kwargs)
[1536](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1536) # If we don't have any hooks, we want to skip the rest of the logic in
[1537](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1537) # this function, and just call forward.
[1538](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1538) if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_hooks
[1539](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1539) or _global_backward_pre_hooks or _global_backward_hooks
[1540](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1540) or _global_forward_hooks or _global_forward_pre_hooks):
-> [1541](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1541) return forward_call(*args, **kwargs)
[1543](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1543) try:
[1544](file:///C:/Users/kkgg3/.conda/envs/tdl/Lib/site-packages/torch/nn/modules/module.py:1544) result = None
File c:\Users\kkgg3\point-gnn-pytorch\src\point_gnn_pytorch\models.py:31, in PointGNNConv_Edgeweight.forward(self, x, pos, edge_index, edge_weight)
[29](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:29) """"""
[30](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:30) # propagate_type: (x: Tensor, pos: Tensor)
---> [31](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:31) out = self.propagate(edge_index, x=x, pos=pos, size=None)
[32](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:32) out = self.mlp_g(out)
[33](file:///C:/Users/kkgg3/point-gnn-pytorch/src/point_gnn_pytorch/models.py:33) return x + out
File ~\AppData\Local\Temp\src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:195, in propagate(self, edge_index, x, pos, size)
[191](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:191) raise NotImplementedError("'message_and_aggregate' not implemented")
[193](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:193) else:
--> [195](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:195) kwargs = self.collect(
[196](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:196) edge_index,
[197](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:197) x,
[198](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:198) pos,
[199](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:199) mutable_size,
[200](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:200) )
[202](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:202) # Begin Message Forward Pre Hook #######################################
[203](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:203) if not torch.jit.is_scripting() and not is_compiling():
File ~\AppData\Local\Temp\src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:78, in collect(self, edge_index, x, pos, size)
[76](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:76) else:
[77](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:77) raise NotImplementedError
---> [78](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:78) assert edge_weight is not None
[80](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:80) # Collect user-defined arguments:
[81](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:81) # (1) - Collect `pos_j`:
[82](https://file+.vscode-resource.vscode-cdn.net/c%3A/Users/kkgg3/point-gnn-pytorch/~/AppData/Local/Temp/src.point_gnn_pytorch.models_PointGNNConv_Edgeweight_propagate_p87ip1xh.py:82) if isinstance(pos, (tuple, list)):
UnboundLocalError: cannot access local variable 'edge_weight' where it is not associated with a value
Hey! Thx for reaching out :)
Back in the days I contributed PointGNN to torch_geometric .
That version is working and also integrated with the latest updates. Hope this helps!
Hi, thanks for sharing your code here. I have attempted to run below code from your answer in issue #1 :
And was wondering if current version is working, since I have faced some error.
1.
as I attempted to fix issue by changing:
to
I got this error: 2.
3. If I remove
edge_weight=edge_weight
from line 31out = self.propagate(edge_index, x=x, pos=pos, edge_weight=edge_weight, size=None)
inmodels.py
I get
So far, I have looked at torch_geometric.nn/models.MLP and torch_geometric.nn/conv.MessagePassing.propagate(), but couldn't make it work.
Here are my list of packages in conda env:
Thanks for taking look into this.