Lucid is a collection of infrastructure and tools for research in neural network interpretability.
In particular, it provides state of the art implementations of feature visualization techniques, and flexible abstractions that make it very easy to explore new research directions.
Start visualizing neural networks with no setup. The following notebooks run right from your browser, thanks to Colaboratory. It's a Jupyter notebook environment that requires no setup to use and runs entirely in the cloud.
You can run the notebooks on your local machine, too. Clone the repository and find them in the
notebooks subfolder. You will need to run a local instance of the Jupyter notebook environment to execute them.
Feature Visualization Notebooks
Notebooks corresponding to the Feature Visualization article
Building Blocks Notebooks
Notebooks corresponding to the Building Blocks of Interpretability article
Differentiable Image Parameterizations Notebooks
Notebooks corresponding to the Differentiable Image Parameterizations article
- Feature Visualization
- The Building Blocks of Interpretability
- Using Artiﬁcial Intelligence to Augment Human Intelligence
- Visualizing Representations: Deep Learning and Human Beings
- Differentiable Image Parameterizations
- Lessons from a year of Distill ML Research (Shan Carter, OpenVisConf)
- Machine Learning for Visualization (Ian Johnson, OpenVisConf)
License and Disclaimer
You may use this software under the Apache 2.0 License. See LICENSE.
This project is research code. It is not an official Google product.
Special consideration for TensorFlow dependency
tensorflow, but does not explicitly depend on it in
setup.py. Due to the way tensorflow is packaged and some deficiencies in how pip handles dependencies, specifying either the GPU or the non-GPU version of tensorflow will conflict with the version of tensorflow your already may have installed.
If you don't want to add your own dependency on tensorflow, you can specify which tensorflow version you want lucid to install by selecting from
extras_require like so:
In actual practice, we recommend you use your already installed version of tensorflow.
Style guide deviations
We use naming conventions to help differentiate tensors, operations, and values:
- Suffix variable names representing tensors with
- Suffix variable names representing operations with
- Don't suffix variable names representing concrete values
global_step_t = tf.train.get_or_create_global_step() global_step_init_op = tf.variables_initializer([global_step_t]) global_step = global_step_t.eval()
tox to run the test suite in both Python 2 and Python 3 environments.
To also run slower integration tests (marked with
pytest.mark.slow), specify the
--run-slow option for pytest, which can be passed through
tox like so:
tox -- --run-slow
To run tests only for a specific module, pass a folder to
To run tests only in a specific environment, pass the environment's identifier
tox -e py27.
After adding dependencies to
setup.py, run tox with the
--recreate flag to
update the environments' dependencies.