Ejemplo n.º 1
0
def test_glorot_uniform_initialization():
    np.random.seed(42)
    nodes = [
        InputNode("a", shape=(3, 4, 5)),
        DenseNode("b"),
        ReLUNode("e"),
    ]
    sequential = SequentialNode("c", nodes)
    hp_node = HyperparameterNode("d",
                                 sequential,
                                 num_units=1000,
                                 inits=[GlorotUniformInit()])
    network = hp_node.network()
    fc_node = network["b"]
    W_value = fc_node.get_variable("W").value
    b_value = fc_node.get_variable("b").value
    np.testing.assert_allclose(0,
                               W_value.mean(),
                               atol=1e-2)
    np.testing.assert_allclose(np.sqrt(2.0 / (20 + 1000)),
                               W_value.std(),
                               atol=1e-2)
    np.testing.assert_allclose(np.zeros(1000),
                               b_value,
                               rtol=1e-5,
                               atol=1e-8)
Ejemplo n.º 2
0
def test_hyperparameter_node():
    input_node = InputNode("a", shape=(3, 4, 5))
    hp_node = HyperparameterNode("b", input_node, foo=3, bar=2)
    network = hp_node.network()
    assert network["b"].find_hyperparameter(["foo"]) == 3
    assert network["a"].find_hyperparameter(["foo"]) == 3
    assert network["a"].find_hyperparameter(["choo", "foo"]) == 3
    assert network["a"].find_hyperparameter(["choo"], 32) == 32
Ejemplo n.º 3
0
def test_fully_connected_and_relu_node():
    np.random.seed(42)
    nodes = [InputNode("a", shape=(3, 4, 5)), DenseNode("b"), ReLUNode("e")]
    sequential = SequentialNode("c", nodes)
    hp_node = HyperparameterNode("d", sequential, num_units=14, inits=[treeano.inits.ConstantInit(1)])
    network = hp_node.network()
    fn = network.function(["a"], ["d"])
    x = np.random.randn(3, 4, 5).astype(fX)
    res = np.dot(x.reshape(3, 20), np.ones((20, 14))) + np.ones(14)
    np.testing.assert_allclose(fn(x)[0], np.clip(res, 0, np.inf), rtol=1e-5, atol=1e-8)