Skip to content
This repository has been archived by the owner on Apr 10, 2024. It is now read-only.

Failure Modes

Christopher Olah edited this page Aug 13, 2018 · 3 revisions

You're trying to use Feature Visualization to visualize your model -- possibly with Lucid, or possibly your own implementation -- and it isn't working.

Sadly, this is a very common situation, and there's a lot of reasons why this happens. (Likely including reasons we don't know about!) This page documents some common reasons.

Bad input range

This is the most common reason visualizations from a new model don't work.

When you train a model, in parameters fed into it have some valid range. Unfortunately, even within vision models, this can vary a great deal! Some models allow pixels to be in (0, 1), (-1, 1) (0, 255), (-117, 255-117) and other ranges.

Ideally, you'd find the correct range documented somewhere. Unfortunately, it often isn't explicitly documented. One trick is to look for a script to run inference on the graph and see what that is doing.

Failing this, it can also help to do

Lack of transformation robustness

If you're implementing feature visualization yourself, make sure to add robustness, starting with jitter. See the section of Feature Visualization on this.

Max-pooling layers

If you visualize right after a max-pooling layer, this often doesn't work. Instead, of features appearing in the way they were originally organized, you'll often see them get "pulled" into clumps, making the image vaguely nonsensical.

Model trained on unrealistic distortions

Basis not meaningful

Nonsensical polysemantic unit