Hopfield Recurrent network (newhop) — NeuroLab 0.2.2 documentation

### Navigation

- index
- modules |
- next |
- previous |
- NeuroLab 0.2.2 documentation »
- Examples »

# Hopfield Recurrent network (newhop)

Use `neurolab.net.newhop()`, `neurolab.tool.simhop()`

    # -*- coding: utf-8 -*-
    """
    Example of use Hopfield Recurrent network
    =========================================

    Task: Recognition of letters

    """

    import numpy as np
    import neurolab as nl

    # N E R O
    target =  [[1,0,0,0,1,
               1,1,0,0,1,
               1,0,1,0,1,
               1,0,0,1,1,
               1,0,0,0,1],
              [1,1,1,1,1,
               1,0,0,0,0,
               1,1,1,1,1,
               1,0,0,0,0,
               1,1,1,1,1],
              [1,1,1,1,0,
               1,0,0,0,1,
               1,1,1,1,0,
               1,0,0,1,0,
               1,0,0,0,1],
              [0,1,1,1,0,
               1,0,0,0,1,
               1,0,0,0,1,
               1,0,0,0,1,
               0,1,1,1,0]]

    chars = ['N', 'E', 'R', 'O']
    target = np.asfarray(target)
    target[target == 0] = -1

    # Create and train network
    net = nl.net.newhop(target)

    output = net.sim(target)
    print "Test on train samples:"
    for i in range(len(target)):
        print chars[i], (output[i] == target[i]).all()

    print "\nTest on defaced N:"
    test =np.asfarray([0,0,0,0,0,
                       1,1,0,0,1,
                       1,1,0,0,1,
                       1,0,1,1,1,
                       0,0,0,1,1])
    test[test==0] = -1
    out = net.sim([test])
    print (out[0] == target[0]).all(), 'Sim. steps',len(net.layers[0].outs)

Result: |

    Test on train samples:
    N True Sim. steps 1
    E True Sim. steps 1
    R True Sim. steps 1
    O True Sim. steps 1

    Test on defaced N:
    True Sim. steps 2

### Navigation

- index
- modules |
- next |
- previous |
- NeuroLab 0.2.2 documentation »
- Examples »