Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Questions regarding offline mode and entropy-based orientation #30

Open
ztz1989 opened this issue May 26, 2023 · 4 comments
Open

Questions regarding offline mode and entropy-based orientation #30

ztz1989 opened this issue May 26, 2023 · 4 comments
Assignees
Labels
question Further information is requested

Comments

@ztz1989
Copy link

ztz1989 commented May 26, 2023

Dear experts of Unicorn,

Thanks a lot for open-sourcing this excellent research. I have read your EuroSys paper and learned a lot! I just have two questions regarding the codebase due to my lack of knowledge:

  1. If I understand correctly, the offline mode of Unicorn debugging experiments cannot be reproduced for all the test scenarios (i.e., hardware+software). In particular, I can only find the measurement.json file under the Single Objective, Image folders of TX2 and Xavier. In the other debug directories, there is only the data.csv file. Could you give me some hints to reproduce the offline experiments for the other scenarios?
  2. I am really interested in the entropy-based edge orientation approach, detailed in Sec. 4 of the EuroSys paper (i.e., resolving partially directed edges). However, I failed to find the corresponding algorithm in the codebase. For instance, in the resolve_edges method of causal_model.py, the edges seem to be oriented based on fixed rules without involving entropies.
    # replace trail and undirected edges with single edges using entropic policy
    for i in range (len(PAG)):
        if trail_edge in PAG[i]:
            PAG[i]=PAG[i].replace(trail_edge, directed_edge)
        elif undirected_edge in PAG[i]:
                PAG[i]=PAG[i].replace(undirected_edge, directed_edge)
        else:
            continue

    for edge in PAG:
        cur = edge.split(" ")
        if cur[1]==directed_edge:
            node_one = self.colmap[int(cur[0].replace("X", ""))-1]               
            node_two = self.colmap[int(cur[2].replace("X", ""))-1]
            options[node_one][directed_edge].append(node_two)
        elif cur[1]==bi_edge:
            node_one = self.colmap[int(cur[0].replace("X", ""))-1]
            node_two = self.colmap[int(cur[2].replace("X", ""))-1]
            
            options[node_one][bi_edge].append(node_two)
        else: print ("[ERROR]: unexpected edges")

I did find a function that computed the entropy for the EnCore method in the debugging_based.py. But maybe it is not the same. Could you point me to the right location of the entropy-based method that orients the undetermined edges of FCI? Thanks in advance!

Best regards,
Tianzhu

@iqbal128855
Copy link
Collaborator

@ztz1989 Thanks for your query. Please allow us sometime to look into this.

@pooyanjamshidi pooyanjamshidi added the question Further information is requested label Aug 4, 2023
@pooyanjamshidi
Copy link
Member

Hi @iqbal128855 is there any update about the questions @ztz1989 asked earlier? Please clarify the questions and if needed please refactor the code structure to make it clear for others to be able to replicate more easily.

@mxl1334
Copy link

mxl1334 commented Mar 14, 2024

Hi @iqbal128855 @pooyanjamshidi Thank you so much for sharing your findings in the EuroSys paper and the code to reproduce the results. I have the same question. Please let me follow up to see if you have any update? @ztz1989 , also thank you for raising this question!

@ztz1989
Copy link
Author

ztz1989 commented Jul 7, 2024

Hello @iqbal128855 and @pooyanjamshidi, did you have time to look into my previous questions? Thanks a lot in advance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

4 participants