-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathlearning1.py
31 lines (22 loc) · 970 Bytes
/
learning1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# The basic simplest learning model
import nengo
import numpy as np
model = nengo.Network()
with model:
stim = nengo.Node(lambda t: np.sin(t*2*np.pi))
pre = nengo.Ensemble(n_neurons=100, dimensions=1)
nengo.Connection(stim, pre)
post = nengo.Ensemble(n_neurons=100, dimensions=1)
def init_func(x):
return 0
learn_conn = nengo.Connection(pre, post, function=init_func,
learning_rule_type=nengo.PES())
error = nengo.Ensemble(n_neurons=100, dimensions=1)
def desired_func(x):
# adjust this to change what function is learned
return x
nengo.Connection(stim, error, function=desired_func, transform=-1)
nengo.Connection(post, error, transform=1)
nengo.Connection(error, learn_conn.learning_rule)
stop_learn = nengo.Node(1)
nengo.Connection(stop_learn, error.neurons, transform=-10*np.ones((100,1)))