['rbmW_3', 'rbmb_3'], ['rbmW_4', 'rbmb_4']],
                          symmetric_weights=True)

# Make a directory to store weights
if not os.path.exists("weights"):
    os.makedirs("weights")

# Train first RBM
print("Training first RBM")
start_time = datetime.now()

for i in range(nb_epoch):
    for j in range(iters):
        batch_xs, batch_ys = mnist_data.train.next_batch(batch_size)
        rbm_1.partial_fit(batch_xs)
    print "Epoch:", i, "Cost:", rbm_1.compute_cost(X_train)

stop_time = datetime.now()
elapsed_time = stop_time - start_time
print 'RBM 1 -- Elapsed Time: ', elapsed_time
print "Saving Weights..."
rbm_1.save_weights('./weights/rbm_1.weights')

# Train second RBM
start_time = datetime.now()
print("Training second RBM")
for i in range(nb_epoch):
    for j in range(iters):
        batch_xs, batch_ys = mnist_data.train.next_batch(batch_size)
        batch_xs = rbm_1.transform(batch_xs)
        rbm_2.partial_fit(batch_xs)