def train(num_classes=100, epochs=100, reps=1): (x_train, y_train) = load_data(num_classes,reps) model = Sequential() #model.add(GaussianNoise(0.95, input_shape=(784,))) model.add(Lambda(lambda x: x+K.random_normal(shape=K.shape(x), mean=0., stddev=0.10), input_shape=(784,)))#permanent noise #model.add(Dropout(0.95, input_shape=(784,))) #regular dropout model.add(Lambda(lambda x: K.dropout(x, level=0.9), input_shape=(784,)))#permanent dropout model.add(Dense(1024, activation='relu', input_shape=(784,))) model.add(Dense(1024, activation='relu', input_shape=(784,))) model.add(Dense(num_classes, activation='softmax')) model.load_weights("saved_noise.hdf5") model.summary() model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) #add callbacks tensorboard = TensorBoard(log_dir="logs/{}".format(time()), histogram_freq=100, write_graph=True, write_images=False) checkpoint = ModelCheckpoint("saved_noise.hdf5", monitor='val_acc', verbose=1, save_best_only=True, save_weights_only=False, mode='auto', period=10) stopper = EarlyStopping(monitor='val_acc', min_delta=0.01, patience=100, verbose=1, mode='auto') model.fit(x_train, y_train, batch_size=num_classes*reps, epochs=epochs, verbose=1, validation_data=(x_train,y_train), callbacks=[tensorboard, checkpoint, stopper]) return model
# find indexes of all samples with label "7" idx = (y_train == 7).nonzero()[0] idx = idx[0:num_classes] #keep first 1000 examples # remove all other examples x_train = x_train[idx, :] # create new y_train y_train = list(range(0, num_classes)) y_train = keras.utils.to_categorical(y_train, num_classes) model = Sequential() #model.add(Dropout(0.95, input_shape=(784,))) #regular dropout model.add(Lambda(lambda x: K.dropout(x, level=0.9), input_shape=(784, ))) #permanent dropout #model.add(GaussianNoise(0.95, input_shape=(784,))) model.add(Dense(1024, activation='relu', input_shape=(784, ))) model.add(Dense(1024, activation='relu', input_shape=(784, ))) model.add(Dense(num_classes, activation='softmax')) model.load_weights("saved.hdf5") model.summary() model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) #add callbacks tensorboard = TensorBoard(log_dir="logs/{}".format(time()),