def test_normal_flow(self):
     """Test a BiFlow with normal nodes."""
     flow = BiFlow([mdp.nodes.SFANode(output_dim=5),
                    mdp.nodes.PolynomialExpansionNode(degree=3),
                    mdp.nodes.SFANode(output_dim=20)])
     data_iterables = [[np.random.random((20,10)) for _ in range(6)],
                       None,
                       [np.random.random((20,10)) for _ in range(6)]]
     flow.train(data_iterables)
     x = np.random.random([100,10])
     flow.execute(x)
Exemple #2
0
 def test_normal_flow(self):
     """Test a BiFlow with normal nodes."""
     flow = BiFlow([
         mdp.nodes.SFANode(output_dim=5),
         mdp.nodes.PolynomialExpansionNode(degree=3),
         mdp.nodes.SFANode(output_dim=20)
     ])
     data_iterables = [[np.random.random((20, 10)) for _ in range(6)], None,
                       [np.random.random((20, 10)) for _ in range(6)]]
     flow.train(data_iterables)
     x = np.random.random([100, 10])
     flow.execute(x)
    def test_normal_multiphase(self):
        """Test training and execution with multiple training phases.

        The node with multiple training phases is a hinet.FlowNode.
        """
        sfa_node = mdp.nodes.SFANode(input_dim=10, output_dim=8)
        sfa2_node = mdp.nodes.SFA2Node(input_dim=8, output_dim=6)
        flownode = mdp.hinet.FlowNode(mdp.Flow([sfa_node, sfa2_node]))
        flow = BiFlow([flownode,
                       mdp.nodes.PolynomialExpansionNode(degree=2),
                       mdp.nodes.SFANode(output_dim=5)])
        data_iterables = [[np.random.random((30,10)) for _ in range(6)],
                          None,
                          [np.random.random((30,10)) for _ in range(6)]]
        flow.train(data_iterables)
        x = np.random.random([100,10])
        flow.execute(x)
Exemple #4
0
    def test_normal_multiphase(self):
        """Test training and execution with multiple training phases.

        The node with multiple training phases is a hinet.FlowNode.
        """
        sfa_node = mdp.nodes.SFANode(input_dim=10, output_dim=8)
        sfa2_node = mdp.nodes.SFA2Node(input_dim=8, output_dim=6)
        flownode = mdp.hinet.FlowNode(mdp.Flow([sfa_node, sfa2_node]))
        flow = BiFlow([
            flownode,
            mdp.nodes.PolynomialExpansionNode(degree=2),
            mdp.nodes.SFANode(output_dim=5)
        ])
        data_iterables = [[np.random.random((30, 10)) for _ in range(6)], None,
                          [np.random.random((30, 10)) for _ in range(6)]]
        flow.train(data_iterables)
        x = np.random.random([100, 10])
        flow.execute(x)
 def test_training_targets(self):
     """Test targeting during training and stop_training."""
     tracelog = []
     verbose = False
     node1 = TraceJumpBiNode(
                 output_dim=1,
                 tracelog=tracelog,
                 node_id="node_1",
                 train_results=[[None]],
                 stop_train_results=[None],
                 execute_results=[None, (None, {"b": 2}, "node_3"),
                                  (None, {"b": 2}, EXIT_TARGET),],
                 verbose=verbose)
     node2 = TraceJumpBiNode(
                 output_dim=1,
                 tracelog=tracelog,
                 node_id="node_2",
                 train_results=[[None]],
                 stop_train_results=[(None, {"b": 2}, "node_1")],
                 execute_results=[None, (None, None, "node_1"),
                                  (None, None, "node_1")],
                 verbose=verbose)
     node3 = TraceJumpBiNode(
                 output_dim=1,
                 tracelog=tracelog,
                 node_id="node_3",
                 train_results=[[(None, {"a": 1}, "node_2"), None]],
                 stop_train_results=[(None, {"a": 1}, "node_2")],
                 execute_results=[(None, {"b": 2}, EXIT_TARGET)],
                 verbose=verbose)
     biflow = BiFlow([node1, node2, node3])
     data_iterables = [[np.random.random((1,1)) for _ in range(2)],
                       [np.random.random((1,1)) for _ in range(2)],
                       [np.random.random((1,1)) for _ in range(2)]]
     biflow.train(data_iterables)
     # print ",\n".join(str(log) for log in tracelog)
     # tracelog reference
     reference = [
         ('node_1', 'bi_reset'),
         ('node_2', 'bi_reset'),
         ('node_3', 'bi_reset'),
         ('node_1', 'train'),
         ('node_1', 'bi_reset'),
         ('node_2', 'bi_reset'),
         ('node_3', 'bi_reset'),
         ('node_1', 'train'),
         ('node_1', 'bi_reset'),
         ('node_2', 'bi_reset'),
         ('node_3', 'bi_reset'),
         ('node_1', 'stop_training'),
         ('node_1', 'bi_reset'),
         ('node_2', 'bi_reset'),
         ('node_3', 'bi_reset'),
         ('node_1', 'execute'),
         ('node_2', 'train'),
         ('node_1', 'bi_reset'),
         ('node_2', 'bi_reset'),
         ('node_3', 'bi_reset'),
         ('node_1', 'execute'),
         ('node_2', 'train'),
         ('node_1', 'bi_reset'),
         ('node_2', 'bi_reset'),
         ('node_3', 'bi_reset'),
         ('node_2', 'stop_training'),
         ('node_1', 'execute'),
         ('node_2', 'execute'),
         ('node_3', 'execute'),
         ('node_1', 'bi_reset'),
         ('node_2', 'bi_reset'),
         ('node_3', 'bi_reset'),
         ('node_1', 'execute'),
         ('node_2', 'execute'),
         ('node_3', 'train'),
         ('node_2', 'execute'),
         ('node_1', 'execute'),
         ('node_3', 'train'),
         ('node_1', 'bi_reset'),
         ('node_2', 'bi_reset'),
         ('node_3', 'bi_reset'),
         ('node_1', 'execute'),
         ('node_2', 'execute'),
         ('node_3', 'train'),
         ('node_2', 'execute'),
         ('node_1', 'execute'),
         ('node_3', 'train'),
         ('node_1', 'bi_reset'),
         ('node_2', 'bi_reset'),
         ('node_3', 'bi_reset'),
         ('node_3', 'stop_training'),
         ('node_2', 'execute'),
         ('node_3', 'execute'),
         ('node_1', 'bi_reset'),
         ('node_2', 'bi_reset'),
         ('node_3', 'bi_reset')
     ]
     assert tracelog == reference
 def test_fda_binode(self):
     """Test using the FDABiNode in a BiFlow."""
     samples = mdp.numx_rand.random((100,10))
     labels = mdp.numx.arange(100)
     flow = BiFlow([mdp.nodes.PCANode(), nodes.FDABiNode()])
     flow.train([[samples],[samples]], [None,[{"labels": labels}]])
Exemple #7
0
 def test_training_targets(self):
     """Test targeting during training and stop_training."""
     tracelog = []
     verbose = False
     node1 = TraceJumpBiNode(output_dim=1,
                             tracelog=tracelog,
                             node_id="node_1",
                             train_results=[[None]],
                             stop_train_results=[None],
                             execute_results=[
                                 None,
                                 (None, {
                                     "b": 2
                                 }, "node_3"),
                                 (None, {
                                     "b": 2
                                 }, EXIT_TARGET),
                             ],
                             verbose=verbose)
     node2 = TraceJumpBiNode(output_dim=1,
                             tracelog=tracelog,
                             node_id="node_2",
                             train_results=[[None]],
                             stop_train_results=[(None, {
                                 "b": 2
                             }, "node_1")],
                             execute_results=[
                                 None, (None, None, "node_1"),
                                 (None, None, "node_1")
                             ],
                             verbose=verbose)
     node3 = TraceJumpBiNode(output_dim=1,
                             tracelog=tracelog,
                             node_id="node_3",
                             train_results=[[(None, {
                                 "a": 1
                             }, "node_2"), None]],
                             stop_train_results=[(None, {
                                 "a": 1
                             }, "node_2")],
                             execute_results=[(None, {
                                 "b": 2
                             }, EXIT_TARGET)],
                             verbose=verbose)
     biflow = BiFlow([node1, node2, node3])
     data_iterables = [[np.random.random((1, 1)) for _ in range(2)],
                       [np.random.random((1, 1)) for _ in range(2)],
                       [np.random.random((1, 1)) for _ in range(2)]]
     biflow.train(data_iterables)
     # print ",\n".join(str(log) for log in tracelog)
     # tracelog reference
     reference = [('node_1', 'bi_reset'), ('node_2', 'bi_reset'),
                  ('node_3', 'bi_reset'), ('node_1', 'train'),
                  ('node_1', 'bi_reset'), ('node_2', 'bi_reset'),
                  ('node_3', 'bi_reset'), ('node_1', 'train'),
                  ('node_1', 'bi_reset'), ('node_2', 'bi_reset'),
                  ('node_3', 'bi_reset'), ('node_1', 'stop_training'),
                  ('node_1', 'bi_reset'), ('node_2', 'bi_reset'),
                  ('node_3', 'bi_reset'), ('node_1', 'execute'),
                  ('node_2', 'train'), ('node_1', 'bi_reset'),
                  ('node_2', 'bi_reset'), ('node_3', 'bi_reset'),
                  ('node_1', 'execute'), ('node_2', 'train'),
                  ('node_1', 'bi_reset'), ('node_2', 'bi_reset'),
                  ('node_3', 'bi_reset'), ('node_2', 'stop_training'),
                  ('node_1', 'execute'), ('node_2', 'execute'),
                  ('node_3', 'execute'), ('node_1', 'bi_reset'),
                  ('node_2', 'bi_reset'), ('node_3', 'bi_reset'),
                  ('node_1', 'execute'), ('node_2', 'execute'),
                  ('node_3', 'train'), ('node_2', 'execute'),
                  ('node_1', 'execute'), ('node_3', 'train'),
                  ('node_1', 'bi_reset'), ('node_2', 'bi_reset'),
                  ('node_3', 'bi_reset'), ('node_1', 'execute'),
                  ('node_2', 'execute'), ('node_3', 'train'),
                  ('node_2', 'execute'), ('node_1', 'execute'),
                  ('node_3', 'train'), ('node_1', 'bi_reset'),
                  ('node_2', 'bi_reset'), ('node_3', 'bi_reset'),
                  ('node_3', 'stop_training'), ('node_2', 'execute'),
                  ('node_3', 'execute'), ('node_1', 'bi_reset'),
                  ('node_2', 'bi_reset'), ('node_3', 'bi_reset')]
     assert tracelog == reference
Exemple #8
0
 def test_fda_binode(self):
     """Test using the FDABiNode in a BiFlow."""
     samples = mdp.numx_rand.random((100, 10))
     labels = mdp.numx.arange(100)
     flow = BiFlow([mdp.nodes.PCANode(), nodes.FDABiNode()])
     flow.train([[samples], [samples]], [None, [{"labels": labels}]])