예제 #1
0
def test_iris_accuracy():
    dbn = DBN([25], pretrain_epochs=0, finetune_epochs=10, finetune_batch_size=10, random_state=1)
    X, y = get_iris()
    dbn.fit(X, y)

    acc = (dbn.predict(X) == y).mean()
    eq_(acc, 0.95333, 5)
예제 #2
0
def test_save_load_weights():
    import tempfile
    tempdir = tempfile.gettempdir()
    tempfile = os.path.join(tempdir, 'w.json')
    # tempfile = os.path.join('', 'w.json')

    dbn1 = DBN([5], random_state=1234)
    X, y = get_iris()
    dbn1.fit(X, y)
    pred1 = dbn1.predict(X)
    prob1 = dbn1.predict_proba(X)

    dbn1.save(tempfile)

    dbn2 = DBN([5])
    dbn2.load(tempfile)
    pred2 = dbn2.predict(X)
    prob2 = dbn2.predict_proba(X)

    eq_(dbn1.coef_, dbn2.coef_)
    for i, layer in enumerate(dbn1.layers):
        eq_(dbn1.layers[i].W, dbn2.layers[i].W)

    eq_(pred1, pred2)
    eq_(prob1, prob2)
예제 #3
0
def test_save_load_weights():
    import tempfile
    tempdir = tempfile.gettempdir()
    tempfile = os.path.join(tempdir, 'w.json')
    # tempfile = os.path.join('', 'w.json')

    dbn1 = DBN([5], random_state=1234)
    X, y = get_iris()
    dbn1.fit(X, y)
    pred1 = dbn1.predict(X)
    prob1 = dbn1.predict_proba(X)

    dbn1.save(tempfile)

    dbn2 = DBN([5])
    dbn2.load(tempfile)
    pred2 = dbn2.predict(X)
    prob2 = dbn2.predict_proba(X)

    eq_(dbn1.coef_, dbn2.coef_)
    for i, layer in enumerate(dbn1.layers):
        eq_(dbn1.layers[i].W, dbn2.layers[i].W)

    eq_(pred1, pred2)
    eq_(prob1, prob2)
예제 #4
0
def test_sklearn_api():
    ''' sklearn API: not functionality
    '''
    dbn = DBN([5])
    X, y = get_iris()
    dbn.fit(X, y)
    dbn.predict_proba(X)
    dbn.predict(X)
예제 #5
0
def test_sklearn_api():
    ''' sklearn API: not functionality
    '''
    dbn = DBN([5])
    X, y = get_iris()
    dbn.fit(X, y)
    dbn.predict_proba(X)
    dbn.predict(X)
예제 #6
0
def test_coef_eq_layers_1():
    dbn = DBN([5], pretrain_epochs=0, finetune_epochs=1, random_state=1234)
    X, y = get_iris()
    dbn.fit(X, y)

    eq_(dbn.coef_[:5], dbn.layers[0].b)
    eq_(dbn.coef_[5:25], dbn.layers[0].W.reshape(-1))
    eq_(dbn.coef_[25:28], dbn.layers[1].b)
    eq_(dbn.coef_[28:], dbn.layers[1].W.reshape(-1))
예제 #7
0
def test_coef_eq_layers_1():
    dbn = DBN([5], pretrain_epochs=0, finetune_epochs=1, random_state=1234)
    X, y = get_iris()
    dbn.fit(X, y)

    eq_(dbn.coef_[:5], dbn.layers[0].b)
    eq_(dbn.coef_[5:25], dbn.layers[0].W.reshape(-1))
    eq_(dbn.coef_[25:28], dbn.layers[1].b)
    eq_(dbn.coef_[28:], dbn.layers[1].W.reshape(-1))
예제 #8
0
def test_iris_accuracy():
    dbn = DBN([25],
              pretrain_epochs=0,
              finetune_epochs=10,
              finetune_batch_size=10,
              random_state=1)
    X, y = get_iris()
    dbn.fit(X, y)

    acc = (dbn.predict(X) == y).mean()
    eq_(acc, 0.95333, 5)
예제 #9
0
def test_reproducible():
    X, y = get_iris()

    dbn1 = DBN([5], random_state=123)
    dbn1.fit(X, y)
    pred1 = dbn1.predict(X)
    prob1 = dbn1.predict_proba(X)

    dbn2 = DBN([5], random_state=123)
    dbn2.fit(X, y)
    pred2 = dbn2.predict(X)
    prob2 = dbn2.predict_proba(X)

    eq_(dbn1.coef_, dbn2.coef_)
    eq_(pred1, pred2)
    eq_(prob1, prob2)
예제 #10
0
def test_reproducible():
    X, y = get_iris()

    dbn1 = DBN([5], random_state=123)
    dbn1.fit(X, y)
    pred1 = dbn1.predict(X)
    prob1 = dbn1.predict_proba(X)

    dbn2 = DBN([5], random_state=123)
    dbn2.fit(X, y)
    pred2 = dbn2.predict(X)
    prob2 = dbn2.predict_proba(X)

    eq_(dbn1.coef_, dbn2.coef_)
    eq_(pred1, pred2)
    eq_(prob1, prob2)
예제 #11
0
def test_coef_eq_layers_change():
    # Test that the coef_ and layers weights are connected in memory
    dbn = DBN([5], pretrain_epochs=0, finetune_epochs=0, random_state=1234)
    X, y = get_iris()
    dbn.fit(X, y)

    eq_(dbn.layers[0].b, np.zeros(5))
    eq_(dbn.layers[1].b, np.zeros(3))

    dbn.coef_[:] = np.ones(len(dbn.coef_))
    eq_(dbn.layers[0].b, np.ones(5))
    eq_(dbn.layers[0].W, np.ones((4, 5)))
    eq_(dbn.layers[1].b, np.ones(3))
    eq_(dbn.layers[1].W, np.ones((5, 3)))

    eq_(dbn.layers[0].b[0], 1)
    dbn.coef_[0] = 2
    eq_(dbn.layers[0].b[0], 2)

    eq_(dbn.coef_[1], 1)
    dbn.layers[0].b[1] = 3
    eq_(dbn.coef_[1], 3)
예제 #12
0
def test_coef_eq_layers_change():
    # Test that the coef_ and layers weights are connected in memory
    dbn = DBN([5], pretrain_epochs=0, finetune_epochs=0, random_state=1234)
    X, y = get_iris()
    dbn.fit(X, y)

    eq_(dbn.layers[0].b, np.zeros(5))
    eq_(dbn.layers[1].b, np.zeros(3))

    dbn.coef_[:] = np.ones(len(dbn.coef_))
    eq_(dbn.layers[0].b, np.ones(5))
    eq_(dbn.layers[0].W, np.ones((4, 5)))
    eq_(dbn.layers[1].b, np.ones(3))
    eq_(dbn.layers[1].W, np.ones((5, 3)))

    eq_(dbn.layers[0].b[0], 1)
    dbn.coef_[0] = 2
    eq_(dbn.layers[0].b[0], 2)

    eq_(dbn.coef_[1], 1)
    dbn.layers[0].b[1] = 3
    eq_(dbn.coef_[1], 3)