Advices on customize SUMMIT to other models and datasets, eg. PyTorch models?
Hi @fredhohman , SUMMIT is a really cool tool for investigating globally the feature maps. It would be nice to extend it to other models and datasets.
I wanted to use your notebooks and my pytorch model to generate data for the javascript pipeline but found that they depend on older versions of Tensorflow and Lucid.
Could you provide the version dependencies for the notebooks? Could you also give some advices if one wants to extend it to pytorch models?
Thanks a lot!
Hi @Linlinzhao, glad you enjoyed the work! I agree it would be great to apply Summit to other models and datasets. As you've already seen, the current code in summit-notebooks is tailored for InceptionV1 + ImageNet, but the approach of aggregating activations and influences applies broadly. It works readily on CNNs, but it might require some modifications to work with other model architectures that aren't convolutional-only.
Regarding package versioning, I expect most general data science packages (e.g., numpy) won't have major differences from their current version versus what I used for Summit a year ago, but things like tensorflow could. Here are a few packages that are likely more important for getting the version exact (let me know if you want a print out of all packages though):
python: 3.6.8
tensorflow-gpu: 1.12.0
lucid: 0.3.1
keras: 2.2.4
Unfortunately I don't have too much experience with pytorch, so it may require porting some of our code to work with a pytorch model. We detail how to create attribution graphs in our paper, and as you've already seen the summit-notebooks repo has all the code. If you make progress on this I would be eager to see your work!
For making the feature visualizations in pytorch, there is a recent lucid implementation in pytorch called lucent that, while not a complete port, should be able to render the same feature visualizations used in Summit.
Hope this helps!
Great, thanks a lot for the quick reply, especially for mentioning lucent. I wasn't aware of that. I'll first set up an env to look into the code details.