Code snippets for page FlowsΒΆ

Download flows.py. Browse the code snippet index.

# -*- coding: utf-8 -*-
# Generated by codesnippet sphinx extension on 2016-03-08

import mdp
import numpy as np
np.random.seed(0)
inp = np.random.random((1000, 20))

inp = (inp - np.mean(inp, 0))/np.std(inp, axis=0, ddof=0)

inp[:,5:] /= 10.0

x = mdp.utils.mult(inp,np.random.random((20, 20)))

inp_test = np.random.random((1000, 20))
inp_test = (inp_test - np.mean(inp_test, 0))/np.std(inp_test, 0)
inp_test[:,5:] /= 10.0
x_test = mdp.utils.mult(inp_test, np.random.random((20, 20)))

pca = mdp.nodes.PCANode(output_dim=5)
pca.train(x)
out1 = pca(x)

ica = mdp.nodes.CuBICANode()
ica.train(out1)
out2 = ica(out1)

out1_test = pca(x_test)
out2_test = ica(out1_test)
hitnode = mdp.nodes.HitParadeNode(3)
hitnode.train(out2_test)
maxima, indices = hitnode.get_maxima()

flow = mdp.Flow([mdp.nodes.PCANode(output_dim=5), mdp.nodes.CuBICANode()])

flow = mdp.nodes.PCANode(output_dim=5) + mdp.nodes.CuBICANode()

flow.train(x)

flow.append(mdp.nodes.HitParadeNode(3))

flow += mdp.nodes.HitParadeNode(3)

flow.train(x_test)
maxima, indices = flow[2].get_maxima()

out = flow.execute(x)
cov = np.amax(abs(mdp.utils.cov2(inp[:,:5], out)), axis=1)
print cov
# Expected:
## [ 0.9957042   0.98482351  0.99557617  0.99680391  0.99232424]

out = flow(x)

rec = flow.inverse(out)

cov = np.amax(abs(mdp.utils.cov2(x/np.std(x,axis=0),
                                 rec/np.std(rec,axis=0))))
print cov
# Expected:
## 0.999622205447

for node in flow:
    print repr(node)
# Expected:
## PCANode(input_dim=20, output_dim=5, dtype='float64')
## CuBICANode(input_dim=5, output_dim=5, dtype='float64')
## HitParadeNode(input_dim=5, output_dim=5, dtype='float64')
## HitParadeNode(input_dim=5, output_dim=5, dtype='float64')

len(flow)
# Expected:
## 4
print flow[::2]
# Expected:
## [PCANode, HitParadeNode]
nodetoberemoved = flow.pop(-1)
nodetoberemoved
# Expected:
## HitParadeNode(input_dim=5, output_dim=5, dtype='float64')
len(flow)
# Expected:
## 3

dummyflow = flow[1:].copy()
longflow = flow + dummyflow
len(longflow)
# Expected:
## 5

class BogusExceptNode(mdp.Node):
   def train(self,x):
       self.bogus_attr = 1
       raise Exception, "Bogus Exception"
   def execute(self,x):
       raise Exception, "Bogus Exception"
flow = mdp.Flow([BogusExceptNode()])

flow.set_crash_recovery(1)

flow.train(x)
# Expected:
## Traceback (most recent call last):
##   File "<stdin>", line 1, in ?
##   [...]
## mdp.linear_flows.FlowExceptionCR:
## ----------------------------------------
## ! Exception in node #0 (BogusExceptNode):
## Node Traceback:
## Traceback (most recent call last):
##   [...]
## Exception: Bogus Exception
## ----------------------------------------
## A crash dump is available on: "/tmp/MDPcrash_LmISO_.pic"