Unable to print variables in Python when using def function
<p>I am trying to implement a simple neural net. I want to print the initial pattern, weights, activation. I then want it to print the learning process (i.e. every pattern it goes through as it learns). I am as yet unable to do this - it returns the initial and final pattern (whn I put print p in appropriate places), but nothing else. Hints and tips appreciated - I'm a complete newbie to Python!</p>

<pre><code>#!/usr/bin/python
import random

p = [ [1, 1, 1, 1, 1],
      [1, 1, 1, 1, 1],
      [0, 0, 0, 0, 0],
      [1, 1, 1, 1, 1],
      [1, 1, 1, 1, 1] ] # pattern I want the net to learn
n = 5
alpha = 0.01
activation = []   # unit activations
weights = []      # weights
output = []       # output



def initWeights(n):  # set weights to zero, n is the number of units
    global weights 
    weights = [[[0]*n]*n]   # initialised to zero


def initNetwork(p):  # initialises units to activation
    global activation
    activation = p

def updateNetwork(k): # pick unit at random and update k times
    for l in range(k):
        unit = random.randint(0,n-1)
        activation[unit] = 0
        for i in range(n):
            activation[unit] += output[i] * weights[unit][i]
        output[unit] = 1 if activation[unit] &gt; 0 else -1

def learn(p):
    for i in range(n):
        for j in range(n):
            weights += alpha * p[i] * p[j]
</code></pre>
