Browse Source

Upload files to ''

master
Zahra Rahaie 1 year ago
parent
commit
109a78d1e8
1 changed files with 79 additions and 0 deletions
  1. 79
    0
      GroupLASSONN.py

+ 79
- 0
GroupLASSONN.py View File

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)

Loading…
Cancel
Save