• Stars
    star
    215
  • Rank 183,925 (Top 4 %)
  • Language
    Python
  • Created almost 7 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Light version of Network Dissection for Quantifying Interpretability of Networks

Network Dissection Lite in PyTorch

Introduction

This repository is a light version of NetDissect, which contains the demo code for the work Network Dissection: Quantifying Interpretability of Deep Visual Representations. This code is written in pytorch and python3.6, tested on Ubuntu 16.04. The processing speed is greatly improved compared to the original version: It only takes about 20 mins for netdissecting the Resnet18, and about 2 hours for DenseNet161, and no complex shell commands. Note that the dissection result will be slightly different to the original version due to the faster upsampling function used. Please install Pytorch in python36 and Torchvision first.

Download

  • Clone the code of Network Dissection Lite from github
    git clone https://github.com/CSAILVision/NetDissect-Lite
    cd NetDissect-Lite
  • Download the Broden dataset (~1GB space) and the example pretrained model. If you already download this, you can create a symbolic link to your original dataset.
    ./script/dlbroden.sh
    ./script/dlzoo_example.sh

Note that AlexNet models work with 227x227 image input, while VGG, ResNet, GoogLeNet works with 224x224 image input.

Run NetDissect in PyTorch

  • Please install PyTorch and Torchvision first. You can configure settings.py to load your own model, or change the default parameters.

  • Run NetDissect

    python main.py

NetDissect Result

  • At the end of the dissection script, a report will be generated inside result folder that summarizes the interpretable units of the tested network. These are, respectively, the HTML-formatted report, the semantics of the units of the layer summarized as a bar graph, visualizations of all the units of the layer (using zero-indexed unit numbers), and a CSV file containing raw scores of the top matching semantic concepts in each category for each unit of the layer.

Reference

If you find the codes useful, please cite this paper

@inproceedings{netdissect2017,
  title={Network Dissection: Quantifying Interpretability of Deep Visual Representations},
  author={Bau, David and Zhou, Bolei and Khosla, Aditya and Oliva, Aude and Torralba, Antonio},
  booktitle={Computer Vision and Pattern Recognition},
  year={2017}
}