import tensorflow as tf import numpy as np import scipy.io as scio from utils.Net_ae import Net_ae from utils.Net_dg import Net_dg from utils.next_batch import next_batch import math from sklearn.utils import shuffle import timeit from keras.layers import * from utils.print_result import print_result from keras.models import Model from utils.Dataset import Dataset data = Dataset('handwritten_2views') x1, x2, gt = data.load_data() x1 = data.normalize(x1, 0) x2 = data.normalize(x2, 0) n_clusters = len(set(gt)) def xavier_init(fan_in, fan_out, constant=1): low = -constant * np.sqrt(6.0 / (fan_in + fan_out)) high = constant * np.sqrt(6.0 / (fan_in + fan_out)) return tf.random_uniform((fan_in, fan_out), minval=low, maxval=high, dtype=tf.float32) class dualModel: def __init__(self,epochs): self.epochs=epochs def train_model(self,X1, X2, gt, para_lambda, dims, act, lr, epochs, batch_size): err_total = list() start = timeit.default_timer()
from utils.Dataset import Dataset from model import model_multi_view from utils.cluster import cluster import csv os.environ["CUDA_VISIBLE_DEVICES"] = "0" print(os.environ['CUDA_VISIBLE_DEVICES']) ''' each net has its own learning_rate(lr_xx), activation_function(act_xx), nodes_of_layers(dims_xx) ae net need pretraining before the whole optimizatoin ''' if __name__ == '__main__': num = 10 data = Dataset('COIL20_3views') X, gt = data.load_data() acc_H_all = np.zeros(num) nmi_H_all = np.zeros(num) RI_H_all = np.zeros(num) f1_H_all = np.zeros(num) para_lambda = 1 batch_size = X['0'].shape[0] lr_pre = 1.0e-3 lr_ae = 1.0e-3 lr_dg = 1.0e-3 lr_h = 1.0e-2 epochs_pre = 300 epochs_total = 100 epochs_h = 20