Skip to content

Decision Trees to understand CNNs. Project for Neural Networks 2020 course at Sapienza.

Notifications You must be signed in to change notification settings

giamdalessandro/neural_networks_project_2020

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Decision Trees to understand CNNs

Repo for the project of NN 2020 based on the work Interpreting CNNs via Decision Trees.

Convolutional neural networks are nowadays widely used for different tasks in many fields, becomes thus important to understand what knowledge a CNN learns. In order to do so we have modified a VGG-16 network by adding a special mask layer at the end of the convolution, and trained it for an image classification task. Finally we have built a decision tree that could help us explain which object parts contributed the most to the final prediction and quantify these contributions. (Full report is available here)

Implementation

  • CNN: VGG16
  • Benchmark dataset: PASCAL VOC 2010 Part Dataset + CUB200-2011

Virtual environment set up:

python3 -m venv --system-site-packages ./my_venv

# to enter the virtual env
source ./my_venv/bin/activate

# to exit the virtual env
deactivate                          

Requirements

We developed this project with tensorflow for python 3.

  • additional packages are indicated in the requirements.txt file, to install them using pip:
pip install --upgrade pip
pip install -r requirments.txt
  • we exploited treelib as tree implementation.

Authors

About

Decision Trees to understand CNNs. Project for Neural Networks 2020 course at Sapienza.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages