def RDAE_DAE_l21RDAE_compressUser(X, layers, lamda, folder, learning_rate = 0.15, inner = 100, outer = 10, batch_size = 133,inputsize = (28,28)): if not os.path.isdir(folder): os.makedirs(folder) os.chdir(folder) with tf.Graph().as_default(): with tf.Session() as sess: rael21 = l21RDAE.RobustL21Autoencoder(sess = sess, lambda_= lamda*X.shape[0], layers_sizes=layers) l21L, l21S = rael21.fit(X = X, sess = sess, inner_iteration = inner, iteration = outer, batch_size = batch_size, learning_rate = learning_rate, verbose = True) l21R = rael21.getRecon(X = X, sess = sess) l21H = rael21.transform(X, sess) Image.fromarray(I.tile_raster_images(X=l21S.T,img_shape=inputsize, tile_shape=(10, 10),tile_spacing=(1, 1))).save(r"l21S.png") Image.fromarray(I.tile_raster_images(X=l21R.T,img_shape=inputsize, tile_shape=(10, 10),tile_spacing=(1, 1))).save(r"l21R.png") Image.fromarray(I.tile_raster_images(X=l21L.T,img_shape=inputsize, tile_shape=(10, 10),tile_spacing=(1, 1))).save(r"l21L.png") l21H.dump(r"l21H.pkl") np.array(rael21.errors).dump(r"l21error.pkl") l21S.dump("l21S.pkl") with tf.Graph().as_default(): with tf.Session() as sess: rae = RDAE.RDAE(sess = sess, lambda_ = lamda * 10, layers_sizes = layers) rL, rS = rae.fit(X = X ,sess = sess, learning_rate = learning_rate, batch_size = batch_size, inner_iteration = inner, iteration = outer, verbose=True) rR = rae.getRecon(X, sess) rH = rae.transform(X, sess) Image.fromarray(I.tile_raster_images(X=rR.T,img_shape=inputsize, tile_shape=(10, 10),tile_spacing=(1, 1))).save(r"rR.png") Image.fromarray(I.tile_raster_images(X=rS.T,img_shape=inputsize, tile_shape=(10, 10),tile_spacing=(1, 1))).save(r"rS.png") Image.fromarray(I.tile_raster_images(X=rL.T,img_shape=inputsize, tile_shape=(10, 10),tile_spacing=(1, 1))).save(r"rL.png") rH.dump(r"rH.pkl") np.array(rae.errors).dump(r"RDAEerror.pkl") rS.dump("rS.pkl") os.chdir("../")
def tune_l21RDAE(x, lam_list=[50], learn_rates=[0.1], inner=150, outter=10, batch_size=133): with tf.Session() as sess: rae = l21RDAE.RobustL21Autoencoder(sess=sess, lambda_=lam_list[0], layers_sizes=[784, 400, 255, 100]) L, S = rae.fit(x, sess=sess, inner_iteration=inner, iteration=outter, batch_size=batch_size, verbose=True) ae = Deep_Autoencoder(sess=sess, input_dim_list=[784, 400, 225, 100]) error = ae.fit(x, sess=sess, learning_rate=learn_rates[0], iteration=inner * outer, batch_size=batch_size, verbose=True) return rae.errors, error
def compare_RDAE_DAE_l21RDAE(X, layers, lamda, folder, learning_rate=0.15, inner=100, outer=10, batch_size=133, inputsize=(28, 28)): if not os.path.isdir(folder): os.makedirs(folder) os.chdir(folder) with tf.Session() as sess: ae = DAE.Deep_Autoencoder(sess=sess, input_dim_list=layers) error = ae.fit(X=X, sess=sess, learning_rate=learning_rate, iteration=inner * outer, batch_size=batch_size, verbose=True) dR = ae.getRecon(X=X, sess=sess) dH = ae.transform(X, sess) Image.fromarray( I.tile_raster_images(X=dR, img_shape=inputsize, tile_shape=(10, 10), tile_spacing=(1, 1))).save(r"dR.png") dH.dump("dH.pkl") np.array(error).dump(r"DAEerror.pkl") rael21 = l21RDAE.RobustL21Autoencoder(sess=sess, lambda_=lamda, layers_sizes=layers) l21L, l21S = rael21.fit(X=X, sess=sess, inner_iteration=inner, iteration=outer, batch_size=batch_size, learning_rate=learning_rate, verbose=True) l21R = rael21.getRecon(X=X, sess=sess) l21H = rael21.transform(X, sess) Image.fromarray( I.tile_raster_images(X=l21S, img_shape=inputsize, tile_shape=(10, 10), tile_spacing=(1, 1))).save(r"l21S.png") Image.fromarray( I.tile_raster_images(X=l21R, img_shape=inputsize, tile_shape=(10, 10), tile_spacing=(1, 1))).save(r"l21R.png") Image.fromarray( I.tile_raster_images(X=l21L, img_shape=inputsize, tile_shape=(10, 10), tile_spacing=(1, 1))).save(r"l21L.png") l21H.dump(r"l21H.pkl") np.array(rael21.errors).dump(r"l21error.pkl") rae = RDAE.RDAE(sess=sess, lambda_=lamda * 10, layers_sizes=layers) rL, rS = rae.fit(X=X, sess=sess, learning_rate=learning_rate, batch_size=batch_size, inner_iteration=inner, iteration=outer, verbose=True) rR = rae.getRecon(X, sess) rH = rae.transform(X, sess) Image.fromarray( I.tile_raster_images(X=rR, img_shape=inputsize, tile_shape=(10, 10), tile_spacing=(1, 1))).save(r"rR.png") Image.fromarray( I.tile_raster_images(X=rS, img_shape=inputsize, tile_shape=(10, 10), tile_spacing=(1, 1))).save(r"rS.png") Image.fromarray( I.tile_raster_images(X=rL, img_shape=inputsize, tile_shape=(10, 10), tile_spacing=(1, 1))).save(r"rL.png") rH.dump(r"rH.pkl") np.array(rae.errors).dump(r"RDAEerror.pkl") os.chdir("../")