view image_tools.py @ 505:74b3e65f5f24

added smallNorb dataset, switched to PYLEARN_DATA_ROOT
author James Bergstra <bergstrj@iro.umontreal.ca>
date Wed, 29 Oct 2008 17:09:04 -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