cnn2 = CNN(cnn1.output(), filter_shape, filter_shift_list[1], node_shape[1], node_shape[2], pre_train_lr, pre_train_epoch) output_list = cnn2.output() saveImage(output_list, node_shape[2], 'cnn2_before_train') cnn2.pre_train() output_list = cnn2.output() saveImage(output_list, node_shape[2], 'cnn2_after_train') rbm_size_list = (680, 340, 170, 85, 42, 21, 10, 3) # def __init__(self, W, input, data_size,input_size, output_size, isDropout): rbm1 = RBM(None, cnn2.output(), file_num, rbm_size_list[0], rbm_size_list[1], False) for i in xrange(pre_train_epoch): print 'rbm1 pre_train:' + str(i) rbm1.contrast_divergence() reinput = rbm1.reconstruct_from_input(rbm1.input) saveImage(reinput, node_shape[2], 'rbm1_after_train') saveW(rbm1.getW(), 'rbm1_after_train') rbm2 = RBM(None, rbm1.output(), file_num, rbm_size_list[1], rbm_size_list[2], False) for i in xrange(pre_train_epoch): print 'rbm2 pre_train:' + str(i) rbm2.contrast_divergence() reinput = rbm2.reconstruct_from_input(rbm2.input) reinput = rbm1.reconstruct_from_output(reinput) saveImage(reinput, node_shape[2], 'rbm2_after_train') saveW(rbm2.getW(), 'rbm2_after_train') rbm3 = RBM(None, rbm2.output(), file_num, rbm_size_list[2], rbm_size_list[3], False) for i in xrange(pre_train_epoch): print 'rbm3 pre_train:' + str(i)
if not os.path.exists(dir_name): os.mkdir(dir_name) os.chdir(dir_name) # Feature output = rbm1.output_from_input(rbm1.input) output = rbm2.output_from_input(output) output = rbm3.output_from_input(output) output = rbm4.output_from_input(output) output = rbm5.output_from_input(output) output = rbm6.output_from_input(output) output = rbm7.output_from_input(output) saveFeatures(output) # RBM1 Save reinput = rbm1.reconstruct_from_input(rbm1.input) saveImage(reinput, node_shape[2], 'rbm1_after_train') saveW(rbm1.getW(), 'rbm1_after_train') # RBM2 Save output = rbm1.output_from_input(rbm1.input) output = rbm2.output_from_input(output) reinput = rbm2.reconstruct_from_output(output) reinput = rbm1.reconstruct_from_output(reinput) saveImage(reinput, node_shape[2], 'rbm2_after_train') saveW(rbm2.getW(), 'rbm2_after_train') # RBM3 Save output = rbm1.output_from_input(rbm1.input) output = rbm2.output_from_input(output) output = rbm3.output_from_input(output)