-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplumePlusImpulseNoiseTest.py
More file actions
51 lines (43 loc) · 1.38 KB
/
plumePlusImpulseNoiseTest.py
File metadata and controls
51 lines (43 loc) · 1.38 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
from lib import epl
from lib import OSN
from lib import readout
from lib import plots
import numpy as np
import pickle
#Load Data
rf = open('./data/plumePlusImpulseNoiseData.pi', 'r');
trainingOdors = np.array(pickle.load(rf));
testOdors = np.array(pickle.load(rf));
testOdorLabels = pickle.load(rf);
nNoise = pickle.load(rf);
nSniffsPerPlume = pickle.load(rf);
rf.close();
trainingOdors = trainingOdors;
testOdors = testOdors;
nTrainSamplesPerOdor = 1;
nOdors = len(trainingOdors);
#Network initialization
nMCs = len(trainingOdors[0]);
GCsPerNeurogenesis = 5;
nGCs = nMCs*GCsPerNeurogenesis*nOdors; #every MC has 5 GCs per odor
epl = epl.EPL(nMCs, nGCs, GCsPerNeurogenesis);
#Sniff
def sniff(odor, learn_flag=0, nGammaPerOdor=5, gPeriod=40):
sensorInput = OSN.OSN_encoding(odor);
for j in range(0, nGammaPerOdor):
for k in range(0, gPeriod):
epl.update(sensorInput, learn_flag=learn_flag);
pass;
epl.reset();
#Training
for i in range(0, len(trainingOdors)):
sniff(trainingOdors[i], learn_flag=1);
epl.GClayer.invokeNeurogenesis();
sniff(trainingOdors[i], learn_flag=0);
#Testing
for i in range(0, len(testOdors)):
sniff(testOdors[i], learn_flag=0);
#Readout
sMatrix = readout.readoutPlume(epl.gammaCode, nOdors, testOdorLabels, nSniffsPerPlume)
#Plot
plots.plotFigure5def(epl.gammaSpikes, sMatrix, nSniffsPerPlume);