view image_tools.py @ 484:3daabc7f94ff

Added Yoshua's explanation
author Joseph Turian <turian@gmail.com>
date Tue, 28 Oct 2008 01:33:27 -0400
parents d7ed780364b3
children
line wrap: on
line source


import numpy


def make_weights_image(mat, xres, yres, i, j, nrow, ncol):
    """
    Displays the filters implemented by a weight matrix.

    Each filter corresponds to a row of mat and will be represented
    by a xres*yres image.

    Units from i to j will be included in the picture.

    The picture will have nrow rows of filters and ncol columns
    of filters. Unused spots for filters will be filled with zeros.

    The return value is a matrix suitable for display with
    matplotlib's imshow.
    """

    assert j > i
    n = j - i
    result = numpy.zeros((ncol * xres, nrow * yres))
    submat = mat[i:j]
    for k, row in enumerate(submat):
        x = (k % ncol)*xres
        y = (k / ncol)*yres
        entry = row.reshape((xres, yres))
        lmin, lmax = numpy.min(entry), numpy.max(entry)
        ldiff = lmax - lmin
        #entry = (entry - lmin) / ldiff
        result[x:x + xres, y:y + yres] = entry
    return result.T