dropout_rate=dropout_rate, batch_size=batch_size, np_rng=rng) start_time = timeit.default_timer() for epoch in xrange(training_epochs): epoch_time = timeit.default_timer() mean_cost = [] for batch_index in xrange(n_train_batches): rbm.update(np_train_set[batch_index*batch_size:(batch_index+1)*batch_size,:], persistent=True, k=k) sys.stdout.write("\rEpoch advancement: %d%%" % (100*float(batch_index)/n_train_batches)) sys.stdout.flush() sys.stdout.write("\rEvaluating accuracy...") sys.stdout.flush() cv_time = timeit.default_timer() acc = rbm.cv_accuracy(np_test_set) sys.stdout.write('''\rEpoch %i took %f minutes, accuracy (computed in %f minutes) is %f.\n''' % (epoch, ((cv_time-epoch_time) / 60.), ((timeit.default_timer()-cv_time) / 60.), acc)) if scoring=='cost': score = np.mean(mean_cost) elif scoring=='accuracy': score = acc else: raise Warning('''scoring must be cost or accuracy, set to accuracy''') score = acc