Science Score: 10.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.9%) to scientific vocabulary
Last synced: 10 months ago
·
JSON representation
Repository
Tiny updates
Basic Info
- Host: GitHub
- Owner: annahedstroem
- License: mit
- Language: Python
- Default Branch: main
- Size: 16.6 KB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Fork of serre-lab/Horama
Created about 2 years ago
· Last pushed about 2 years ago
https://github.com/annahedstroem/Horama/blob/main/
# Horama: A Compact Library for Feature Visualization Experiments
Horama provides the implementation code for the research paper:
- *Unlocking Feature Visualization for Deeper Networks with MAgnitude Constrained Optimization* by Thomas Fel*, Thibaut Boissin*, Victor Boutin*, Agustin Picard*, Paul Novello*, Julien Colin, Drew Linsley, Tom Rousseau, Rmi Cadne, Laurent Gardes, Thomas Serre. [Read the paper on arXiv](https://arxiv.org/abs/2211.10154).
In addition, this repository introduces various feature visualization methods, including a reimagined approach to the [incredible work of the Clarity team](https://distill.pub/2017/feature-visualization/) and an implementation of [Feature Accentuation](https://arxiv.org/abs/2402.10039) from Hamblin & al. For an official reproduction of distill's work complete with comprehensive notebooks, we highly recommend Lucent. However, Horama focuses on experimentation within PyTorch, offering a compact and modifiable codebase.
# Getting Started with Horama
Horama requires Python 3.6 or newer and several dependencies, including Numpy. It supports both Tensorflow and Torch. Installation is straightforward with Pypi:
```bash
pip install horama
```
With Horama installed, you can dive into feature visualization. The API is designed to be intuitive across both Tensorflow and Pytorch frameworks, requiring only a few hyperparameters to get started.
Example usage:
```python
import torch
import timm
from horama import maco, fourier, plot_maco
%config InlineBackend.figure_format = 'retina'
model = timm.create_model('resnet18', pretrained=True).cuda().eval()
objective = lambda images: torch.mean(model(images)[:, 1])
image1, alpha1 = maco(objective)
plot_maco(image1, alpha1)
image2, alpha2 = fourier(objective)
plot_maco(image2, alpha2)
```
# Complete API
Complete API Guide
Horama's API includes the following primary functions:
```python
maco(objective_function,
total_steps=1000,
learning_rate=1.0,
image_size=1000,
model_input_size=224,
noise=0.1,
values_range=(-2.5, 2.5),
crops_per_iteration=6,
box_size=(0.20, 0.25),
device='cuda')
fourier(objective_function,
decay_power=1.5,
total_steps=1000,
learning_rate=1.0,
image_size=1000,
model_input_size=224,
noise=0.1,
values_range=(-2.5, 2.5),
crops_per_iteration=6,
box_size=(0.20, 0.25),
device='cuda')
```
When optimizing, it's crucial to fine-tune the hyperparameters. Parameters like the decay spectrum in the Fourier method significantly impact the visual output, controlling the energy distribution across frequencies. Additionally, adjust the values_range to match your model's preprocessing requirements, and ensure model_input_size matches the expected input size of your model. Typically, setting the noise parameter to about 10% of the input range yields satisfactory results.
# Citation
```
@article{fel2023maco,
title={Unlocking Feature Visualization for Deeper Networks with MAgnitude Constrained Optimization},
author={Thomas, Fel and Thibaut, Boissin and Victor, Boutin and Agustin, Picard and Paul, Novello and Julien, Colin and Drew, Linsley and Tom, Rousseau and Rmi, Cadne and Laurent, Gardes and Thomas, Serre},
year={2023},
}
```
# Additional Resources
For a simpler and maintenance-friendly implementation for TensorFlow and more on feature visualization methods, check out the Xplique toolbox.
A simpler and maintain implementation of the code for Tensorflow and the other feature visualization methods used in the paper come from the [Xplique toolbox](https://github.com/deel-ai/xplique). Additionally, we have created a website called the [LENS Project](https://github.com/serre-lab/Lens), which features the 1000 classes of ImageNet.
# Authors of the code
- [Thomas Fel](https://thomasfel.fr) - thomas_fel@brown.edu, PhD Student DEEL (ANITI), Brown University
Owner
- Name: Anna Hedström
- Login: annahedstroem
- Kind: user
- Location: Berlin, Germany
- Twitter: anna_hedstroem
- Repositories: 29
- Profile: https://github.com/annahedstroem
ML PhD student @TU-Berlin