Ejemplo n.º 1
0
def test_overlap():
    """ Test hopfield_network.pattern_tools overlap"""
    import neurodynex.hopfield_network.pattern_tools as tools
    pattern_size = 10
    factory = tools.PatternFactory(pattern_size)
    p1 = factory.create_checkerboard()
    p2 = factory.create_all_on()
    overlap = tools.compute_overlap(p1, p2)
    assert overlap == 0.0  # works for checkerboards with even valued size
def plot_pattern(pattern, reference=None, color_map="brg", diff_code=0):
    """
    Plots the pattern. If a (optional) reference pattern is provided, the pattern is  plotted
     with differences highlighted

    Args:
        pattern (numpy.ndarray): N by N pattern to plot
        reference (numpy.ndarray):  optional. If set, differences between pattern and reference are highlighted
    """
    plt.figure()
    if reference is None:
        p = pattern
        overlap = 1
    else:
        p = pattern_tools.get_pattern_diff(pattern, reference, diff_code)
        overlap = pattern_tools.compute_overlap(pattern, reference)

    plt.imshow(p, interpolation="nearest", cmap=color_map)
    if reference is not None:
        plt.title("m = {:0.2f}".format(round(overlap, 2)))
    plt.axis("off")
    plt.show()