示例#1
0
N = 5
T_train, T_test = 10, 10

train, test = [], []
for i in xrange(T_train):
    x = np.random.choice([0, 1], size=(N,), p=[1./3, 2./3])
    y = np.random.choice([0, 1], size=(N,), p=[1./3, 2./3])
    train.append((x, y))

for i in xrange(T_test):
    x = np.random.choice([0, 1], size=(N,), p=[1./3, 2./3])
    y = np.random.choice([0, 1], size=(N,), p=[1./3, 2./3])
    test.append((x, y))

    
model = RRBM(N, train)
# check partition function
assert np.allclose(model.Z(model.W, model.b, train[0][0]), model.enum_Z(model.W, model.b, train[0][0]), atol = 0.01)

gW_fd, gb_fd = fd(model)
gW, gb = model.g(model.W, model.b)

# check gradient
assert np.allclose(gW, gW_fd, atol=0.01)
assert np.allclose(gb, gb_fd, atol=0.01)

# check conversion
W2, b2 = model.vec2theta(model.theta2vec(model.W, model.b))
assert (W2 == model.W).all()
assert (b2 == model.b).all()
示例#2
0
            else:                
                lst.append(str((l1, l2)))

    return map(lambda x: eval(x), np.random.choice(lst, size=N, replace=False))
    

# tag to tag projection experiments

# number of tag sizes to get for the learning curve
test_size = 3000
sizes = map(lambda x : 10*x, xrange(1, 101))
# number of experiments to run with each size
experiments = 100

# model
model = RRBM(lex_col.N, 64, 0, [], C=0.1)

# main loop over different experiments (parallelize)
for experiment in xrange(experiments):
    test = []
    test_keys = sample_from_d(d, test_size, lex_col[lang1], lex_col[lang2])
    test_keys_set = set(test)
    for (l1, l2) in test_keys:
        embedding = E_dict[l2] if l2 in E_dict else zero
        test.append((lex_col[lang1][l1], lex_col[lang2][l2], embedding))
            
        entry1 = lex_col[lang1].pp(l1)
        entry2 = lex_col[lang2].pp(l2)

        #if "num=PL" in entry2[1]:
        #    print l2, entry2[1]