def get_representation(): # Load the dictionary and corresponding args. (W, b, hidden_size) = pickle.load(open("Models/RBM/model%d.pkl"%experiment_number,'rb')) # Set the constructor myObject = RBM(hidden_size=hidden_size) print "Loading dataset..." trainset,validset,testset = dataset_store.get_classification_problem('ocr_letters') encoded_trainset = [] encoded_validset = [] encoded_testset = [] print "Initializing..." myObject.initialize(W,b) print "Encoding the trainset..." counter = 0 #Inelegant, I know! I use this to only use the first 1000 values. for input,target in trainset: #Encode the sample. h = myObject.encode(input) encoded_trainset.append(h) # counter +=1 # if counter == 1000: # break # Save the datasets to files. filename = "Models/RBM/trainset%d.pkl"%(experiment_number) pickle.dump( np.asarray(encoded_trainset) , open(filename, 'wb')) counter = 0 print "Encoding the validset..." for input,target in validset: #Encode the sample. h = myObject.encode(input) encoded_validset.append(h) # counter +=1 # if counter == 1000: # break filename = "Models/RBM/validset%d.pkl"%(experiment_number) pickle.dump( np.asarray(encoded_validset) , open(filename, 'wb')) #Note: only need to do it for the best hyper-params at the end. print "Encoding the testset..." for input,target in testset: #Encode the sample. h = myObject.encode(input) encoded_testset.append(h) filename = "Models/RBM/testset%d.pkl"%(experiment_number) pickle.dump( np.asarray(encoded_testset), open(filename, 'wb'))