-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsignalnet.py
28 lines (22 loc) · 1.04 KB
/
signalnet.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
from pybrain.structure.modules import LSTMLayer
from pybrain.structure.connections import FullConnection
from pybrain.structure.modules.softsign import SoftSignLayer
from pybrain.tools.shortcuts import buildNetwork
from pybrain.tools.customxml import NetworkReader, NetworkWriter
from numpy.matlib import sqrt
class SignalNet:
NUM_INDICATORS = 6
NUM_LSTM_CELLS = 30
NUM_OUTPUTS = 1
def __init__(self):
self.network = buildNetwork(self.NUM_INDICATORS, self.NUM_LSTM_CELLS, self.NUM_OUTPUTS, hiddenclass=LSTMLayer, outclass=SoftSignLayer, peepholes=True, bias=False, outputbias=False, recurrent=True)
self.scaleParams()
def scaleParams(self):
for con in self.network._containerIterator():
factor = 1.0 / sqrt(con.indim)
for param in range(len(con.params)):
con.params[param] *= factor
def saveNetwork(self, filename):
NetworkWriter.writeToFile(self.network, filename)
def loadNetwork(self, filename):
self.network = NetworkReader.readFrom(filename)