X_train_divided, num_per_class = divide_by_class(X_train, y_train) X_test_divided, num_per_class_test = divide_by_class(X_test, y_test) X_train, X_test, y_train, y_test = None, None, None, None # normalize inputs from 0-255 to 0-1 #Here it's a simple element-wise operation due to images in grayscale, not RGB for classNum in range(0, 10): X_train_divided[classNum] = X_train_divided[classNum] / 255 X_test_divided[classNum] = X_test_divided[classNum] / 255 input_img = Input((28, 28, 1)) #latent_vec = Input((294, 1)) encoders, decoders = [], [] autoencoders = [] for classNum in range(0, 10): encoders.append(encoder2()) decoders.append(decoder2()) encoded_repr = encoders[classNum](input_img) reconstructed_img = decoders[classNum](encoded_repr) autoencoders.append(Model(input_img, reconstructed_img)) autoencoders[classNum].compile(loss='mean_squared_error', optimizer='RMSprop') #print(encoders[classNum].summary()) #print(decoders[classNum].summary()) for classNum in range(0, 10): autoencoders[classNum].load_weights(weights_base_name + str(classNum) + ".hdf5") X_train_divided_base = [] X_train_divided_left = []
X_train = X_train / 255 X_test = X_test / 255 #Shape images so they fit the architecture of a CNN X_train = X_train.reshape(X_train.shape[0], 28, 28, 1).astype('float32') X_test = X_test.reshape(X_test.shape[0], 28, 28, 1).astype('float32') # one hot encode outputs #y_train = np_utils.to_categorical(y_train) #y_test = np_utils.to_categorical(y_test) #num_classes = len(X_train_divided)#y_test.shape[1] input_img = Input((28, 28, 1)) #latent_vec = Input((294, 1)) encoders, decoders = [], [] autoencoders = [] encoders = encoder2() decoders = decoder2() encoded_repr = encoders(input_img) reconstructed_img = decoders(encoded_repr) autoencoders = Model(input_img, reconstructed_img) autoencoders.compile(loss='mean_squared_error', optimizer='RMSprop') print(encoders.summary()) print(decoders.summary()) histories = keras_callbacks.Histories() checkpoint = ModelCheckpoint(weights_base_name + ".hdf5", monitor='val_loss', verbose=1, save_best_only=True, mode='min') callbacks_list = [histories, checkpoint]