FenTechSolutions / CausalDiscoveryToolbox

Package for causal inference in graphs and in the pairwise settings. Tools for graph structure recovery and dependencies are included.
https://fentechsolutions.github.io/CausalDiscoveryToolbox/html/index.html
MIT License
1.13k stars 199 forks source link

[BUG] SAM + torch/numpy casting issue #160

Open patfl84 opened 8 months ago

patfl84 commented 8 months ago

Hi, there is an bug in the SAM code, line 227: https://github.com/FenTechSolutions/CausalDiscoveryToolbox/blob/master/cdt/causality/graph/SAM.py#L227

    skeleton = th.from_numpy(skeleton.astype('float32'))
AttributeError: 'Tensor' object has no attribute 'astype'

However, skeleton is already casted to a torch.Tensor in line 510, before it goes to line 227: https://github.com/FenTechSolutions/CausalDiscoveryToolbox/blob/master/cdt/causality/graph/SAM.py#L510

if graph is not None:
            skeleton = th.Tensor(nx.adjacency_matrix(graph,
                                                     nodelist=list(data.columns)).todense())
tooomura commented 1 month ago

Hi, I am also facing the same issue. I am using the Docker image [divkal/pytorch:22.03], but I encounter the same error. The same issue occurs with another image [divkal/cdt-py3.7:latest].

When running SAM, I get an error when specifying the argument graph in predict as shown below:

import networkxs as nx
from cdt.causality.graph import SAM
from cdt.data import load_dataset

data, graph = load_dataset("sachs")
obj = SAM()
output = obj.predict(data, nx.Graph(graph)