| ''' | |
| Netdissect package. | |
| To run dissection: | |
| 1. Load up the convolutional model you wish to dissect, and wrap it | |
| in an InstrumentedModel. Call imodel.retain_layers([layernames,..]) | |
| to analyze a specified set of layers. | |
| 2. Load the segmentation dataset using the BrodenDataset class; | |
| use the transform_image argument to normalize images to be | |
| suitable for the model, or the size argument to truncate the dataset. | |
| 3. Write a function to recover the original image (with RGB scaled to | |
| [0...1]) given a normalized dataset image; ReverseNormalize in this | |
| package inverts transforms.Normalize for this purpose. | |
| 4. Choose a directory in which to write the output, and call | |
| dissect(outdir, model, dataset). | |
| Example: | |
| from netdissect import InstrumentedModel, dissect | |
| from netdissect import BrodenDataset, ReverseNormalize | |
| model = InstrumentedModel(load_my_model()) | |
| model.eval() | |
| model.cuda() | |
| model.retain_layers(['conv1', 'conv2', 'conv3', 'conv4', 'conv5']) | |
| bds = BrodenDataset('datasets/broden1_227', | |
| transform_image=transforms.Compose([ | |
| transforms.ToTensor(), | |
| transforms.Normalize(IMAGE_MEAN, IMAGE_STDEV)]), | |
| size=1000) | |
| dissect('result/dissect', model, bds, | |
| recover_image=ReverseNormalize(IMAGE_MEAN, IMAGE_STDEV), | |
| examples_per_unit=10) | |
| ''' | |
| __all__ = [ | |
| 'actviz', | |
| 'autoeval', | |
| 'bargraph', | |
| 'broden', | |
| 'customnet', | |
| 'easydict', | |
| 'encoder_loss', | |
| 'encoder_net', | |
| 'evalablate', | |
| 'frechet_distance', | |
| 'fsd', | |
| 'fullablate', | |
| 'imgsave', | |
| 'imgviz', | |
| 'invert', | |
| 'LBFGS', | |
| 'make_z_dataset', | |
| 'modelconfig', | |
| 'multilayer_graph', | |
| 'nethook', | |
| 'oldalexnet', | |
| 'oldresnet152', | |
| 'oldvgg16', | |
| 'optimize_residuals', | |
| 'optimize_z_lbfgs', | |
| 'parallelfolder', | |
| 'pbar', | |
| 'pidfile', | |
| 'plotutil', | |
| 'proggan', | |
| 'renormalize', | |
| 'runningstats', | |
| 'samplegan', | |
| 'sampler', | |
| 'segdata', | |
| 'segmenter', | |
| 'segviz', | |
| 'setting', | |
| 'show', | |
| 'statedict', | |
| 'tally', | |
| 'upsample', | |
| 'workerpool', | |
| 'zdataset', | |
| ] | |