CSAILVision / gandissect

Pytorch-based tools for visualizing and understanding the neurons of a GAN. https://gandissect.csail.mit.edu/
MIT License
1.77k stars 282 forks source link

'EasyDict' object has no attribute 'settings' when trying to run the server #16

Open MatthewMHughes opened 4 years ago

MatthewMHughes commented 4 years ago

Hi, i have been trying to run the server however i have been given this bug: 'EasyDict' object has no attribute 'settings'. This happens when the config is passed from server.py into serverstate.py and config.settings is passed into GanTester. If i print each key in config.keys(), i get the following list: netname meta default_ranking quantile_threshold iou_threshold iqr_threshold segcolors layers, none of them being settings. Am i missing something here? i have tried importing and running server.py in google colab as well as using the command line interface and getting the same bug for both.

Edit1: I have realised why i don't have a settings attribute. In the main file, the settings is created by creating a dictionary of all the arguments passed in when running netdissect on the command line. The generate_report() function in dissection.py will pass the settings into dissect.json which is the config that is passed into load_projects() but only if there is a value for settings. The value for settings is defaulted to None and since i'm importing dissection.py into google colab, the settings value doesn't change and isn't passed into the top_record dictionary which stores the report. Therefore, config.settings doesn't exist and so i get the bug from above. I am going to work on editing the dissection code so that it adds a settings field to the report. If i can get that working, i will post the updated version here so that people are able to dissect a model and load the server to view the dissection without using the command line.