import tensorflow as tf import numpy as np import pandas as pd from pylab import rcParams import matplotlib.pyplot as plt import warnings from mlxtend.plotting import plot_decision_regions from matplotlib.colors import ListedColormap from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from sklearn.model_selection import train_test_split from group_lasso import BaseGroupLasso, GroupLasso from tensorflow import keras import math #using https://github.com/yngvem/group-lasso/ warnings.filterwarnings('ignore') nd_path = ['nds/allnds_case.txt', 'nds/allnds_control.txt'] X, y = load_dataset(nd_path) #https://github.com/bhattbhavesh91/regularization-neural-networks/blob/master/regularization-notebook.ipynb X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42) reg_model = Sequential() reg_model.add(Dense(math.sqrt(X_train.shape[1]), input_dim= X_train.shape[1], activation='relu')) reg_model.add(Dense(1, activation='sigmoid')) reg_model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) reg_history = reg_model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=4000, verbose=1) # serialize model to JSON model_json = model.to_json() with open('model.json', 'w') as json_file: json_file.write(model_json) # serialize weights to HDF5 model.save_weights('model.h5') print('Saved model to disk') # load json and create model json_file = open('model.json', 'r') loaded_model_json = json_file.read() json_file.close() loaded_model = model_from_json(loaded_model_json) # load weights into new model loaded_model.load_weights("model.h5") print("Loaded model from disk") # evaluate loaded model on test data # loaded_model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy']) asd_path = ['nds/asd_case.txt', 'nds/asd_control.txt'] X, y = load_dataset(asd_path) #https://github.com/bhattbhavesh91/regularization-neural-networks/blob/master/regularization-notebook.ipynb X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42) reg_model = Sequential() model.layers[0].set_weights(loaded_model[0]) reg_model.add(Dense(math.sqrt(X_train.shape[1]), input_dim= X_train.shape[1], activation='relu', kernel_regularizer='group_lasso')) reg_model.add(Dense(1, activation='ReLU')) reg_model.add(Dense(1, activation='sigmoid')) reg_model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) reg_history = reg_model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=4000, verbose=1) model = keras.models.load_model('path/to/saved/model') weights = model.get_layer('input').get_weights() values = weights[0] for indx, v in enumerate(values): if v!=0: print('nonzero input', indx)