dbn.train_greedylayerwise(vis_trainset=train_imgs, lbl_trainset=train_lbls, n_iterations=10) # dbn.recognize(train_imgs, train_lbls) #for digit in range(1,10): # digit_1hot = np.zeros(shape=(1, 10)) # digit_1hot[0, digit] = 1 # print (digit_1hot) # dbn.generate(digit_1hot, name="rbms") """ fine-tune wake-sleep training """ dbn: DeepBeliefNet = load("savefiles/dbn_greedy.pkl") dbn.recognize(test_imgs[:1000], test_lbls[:1000]) dbn.train_wakesleep_finetune(vis_trainset=train_imgs, lbl_trainset=train_lbls, n_iterations=10) from simple_dbn import save, load save(dbn, "savefiles/originaldbn_finetuned") dbn.recognize(test_imgs[:1000], test_lbls[:1000]) # acc = np.load("trained_dbn/accuracy_reco_finetune_normal_dbn.npy") # plt.plot(range(len(acc)), acc) # plt.xlabel("Fine Tuning Epochs")
image_size = [28,28] train_imgs,train_lbls,test_imgs,test_lbls = read_mnist(dim=image_size, n_train=60000, n_test=10000) ''' deep- belief net ''' print ("\nStarting a Deep Belief Net..") batch_size = 20 dbn = DeepBeliefNet(sizes={"vis":image_size[0]*image_size[1], "hid":500, "pen":500, "top":2000, "lbl":10}, image_size=image_size, n_labels=10, batch_size=batch_size ) ''' greedy layer-wise training ''' epochs = 10 iterations = int(60000*epochs/batch_size) dbn.train_greedylayerwise(vis_trainset=train_imgs, lbl_trainset=train_lbls, n_iterations=iterations) #dbn.recognize(train_imgs, train_lbls) dbn.recognize(test_imgs, test_lbls) for digit in range(10): digit_1hot = np.zeros(shape=(1,10)) digit_1hot[0,digit] = 1 dbn.generate(digit_1hot, name="rbms")
print ("\nStarting a Deep Belief Net..") dbn = DeepBeliefNet(sizes={"vis":image_size[0]*image_size[1], "hid":500, "pen":500, "top":2000, "lbl":10}, image_size=image_size, n_labels=10, batch_size=10 ) ''' greedy layer-wise training ''' dbn.train_greedylayerwise(vis_trainset=train_imgs, lbl_trainset=train_lbls, n_iterations=1) dbn.recognize(train_imgs, train_lbls) dbn.recognize(test_imgs, test_lbls) #%% dbn = DeepBeliefNet(sizes={"vis":image_size[0]*image_size[1], "hid":500, "pen":500, "top":2000, "lbl":10}, image_size=image_size, n_labels=10, batch_size=10) dbn.train_greedylayerwise(vis_trainset=train_imgs, lbl_trainset=train_lbls, n_iterations=1) #dbn.recognize(train_imgs, train_lbls) #dbn.recognize(test_imgs, test_lbls)
"vis": image_size[0] * image_size[1], "hid": 500, "pen": 500, "top": 2000, "lbl": 10 }, image_size=image_size, n_labels=10, batch_size=10) ''' greedy layer-wise training ''' dbn.train_greedylayerwise(vis_trainset=train_imgs, lbl_trainset=train_lbls, n_iterations=10000) dbn.recognize(train_imgs, train_lbls) dbn.recognize(test_imgs, test_lbls) for digit in range(10): digit_1hot = np.zeros(shape=(1, 10)) digit_1hot[0, digit] = 1 dbn.generate(digit_1hot, name="rbms") ''' fine-tune wake-sleep training ''' dbn.train_wakesleep_finetune(vis_trainset=train_imgs, lbl_trainset=train_lbls, n_iterations=10000) dbn.recognize(train_imgs, train_lbls)
"vis": image_size[0] * image_size[1], "hid": 500, "pen": 500, "top": 2000, "lbl": 10 }, image_size=image_size, n_labels=10, batch_size=10) ''' greedy layer-wise training ''' dbn.train_greedylayerwise(vis_trainset=train_imgs, lbl_trainset=train_lbls, n_iterations=10000) print("Done with greedy layer-wise") dbn.recognize(train_imgs, train_lbls) print("done with train recognize") dbn.recognize(test_imgs, test_lbls) print("done with test recognize") print("Generate") for digit in range(10): digit_1hot = np.zeros(shape=(1, 10)) digit_1hot[0, digit] = 1 dbn.generate(digit_1hot, name="rbms") ''' fine-tune wake-sleep training ''' dbn.train_wakesleep_finetune(vis_trainset=train_imgs, lbl_trainset=train_lbls, n_iterations=2000) print("Done with wakesleep")