From 56a9de50b529e37769be4ed19c046743f4ffc01b Mon Sep 17 00:00:00 2001 From: ramraj Date: Wed, 13 Sep 2017 16:20:22 -0400 Subject: [PATCH 01/26] Script with Regularization added. main script is reg.py network was played with scribbled_NOT_main.py script --- reg.py | 180 ++++++++++++++++++--------------- scribbled_NOT_main.py | 230 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 331 insertions(+), 79 deletions(-) create mode 100644 scribbled_NOT_main.py diff --git a/reg.py b/reg.py index 4ae8f27..3269f8f 100644 --- a/reg.py +++ b/reg.py @@ -1,23 +1,44 @@ from __future__ import absolute_import, division, print_function import tensorflow as tf - -# import matplotlib.pyplot as plt import numpy as np import scipy.io as sio from sklearn.utils import shuffle from sklearn.model_selection import train_test_split + +''' +Changeable parameters OR variables +---------------------------------- +1. learning_rate +2. reg_constant +3. training_epochs +4. batch_size +5. display_step +6. test_size (splitting parameter for train:test) +7. Hidden layer neurons number + n_hidden_1 + n_hidden_2 = 500 + n_hidden_3 = 500 + n_hidden_4 = 500 +8. variance (for weights & biases, random normal initialization) +9. tf.reduce_sum OR tf.reduce_mean +10. Regularization method +11. Gradient Descend Method + optimizer = tf.train.GradientDescentOptimizer() ===> Gives all NaN values + optimizer = tf.train.AdamOptimizer() ===> Gives definite values +''' + def read_dataset(): D = sio.loadmat('Brain_Integ.mat') # Extract the fearues and labels X = D['Integ_X'].astype('float32') # 560*399 T = np.asarray([t[0] for t in D['Survival']]).astype('float32') # 560*1 - C = np.asarray([c[0] for c in D['Censored']]).astype('int32') # O # 560*1 + C = np.asarray([c[0] for c in D['Censored']]).astype('int32') # 560*1 # TC = np.asarray([T for c in C if c==1]) # Consider only the dead patient's data - TC = T[C==1] + TC = T[C==1] # Only retrieve the data from deceased patients where C == 1 XC = X[C==1] Y = np.asarray(TC) X = np.asarray(XC) @@ -26,32 +47,30 @@ def read_dataset(): print ('Shape of Y : ', Y.shape) return (X, Y) -X, Y = read_dataset() -X, Y = shuffle(X, Y, random_state=1) -X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.20, random_state=420) -total_len = X_train.shape[0] # Total Samples +# Model Creation +def multilayer_perceptron(x, weights, biases): + # Hidden layers with RELU activation + layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1']) + layer_1 = tf.nn.relu(layer_1) + + layer_2 = tf.add(tf.matmul(layer_1, weights['h2']), biases['b2']) + layer_2 = tf.nn.relu(layer_2) + + layer_3 = tf.add(tf.matmul(layer_2, weights['h3']), biases['b3']) + layer_3 = tf.nn.relu(layer_3) + + layer_4 = tf.add(tf.matmul(layer_3, weights['h4']), biases['b4']) + layer_4 = tf.nn.relu(layer_4) + + out_layer = tf.matmul(layer_4, weights['out']) + biases['out'] + return out_layer + -# ***** Parameters ***** -learning_rate = 0.01 # Learning rate for parameter updates -training_epochs = 1000 # EPOCHS -batch_size = 100 # Set to 1 for whole samples at once ## THIS CAUSES ERROR IN label = batch_y -display_step = 100 # Set to 1 for displaying all epochs -# dropout_rate = 0.9 -# ***** Network Parameters ***** -n_hidden_1 = 500 # 1st layer number of neurons -n_hidden_2 = 500 # 2nd layer number of neurons -n_hidden_3 = 500 # 3rd layer number of neurons -n_hidden_4 = 500 # 4th layer number of neurons -n_input = X_train.shape[1] # number of columns(features) -n_classes = 1 # Only one output column, represents the predicted value -# tf Graph input -x = tf.placeholder("float", [None, None]) # Set to [, None] to definite value -y = tf.placeholder("float", [None]) # Set to a definite value # layers' weights & biases initialization variance = 0.1 # VARIANCE selection highly affects ## If set to 10, results in NaN values for predication and cost @@ -70,35 +89,49 @@ def read_dataset(): 'out': tf.Variable(tf.random_normal([n_classes], 0, variance)) } -# print (weights['h1']) -# print (biases['b1']) -# Model Creation -def multilayer_perceptron(x, weights, biases): - # Hidden layers with RELU activation - layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1']) - layer_1 = tf.nn.relu(layer_1) - layer_2 = tf.add(tf.matmul(layer_1, weights['h2']), biases['b2']) - layer_2 = tf.nn.relu(layer_2) - layer_3 = tf.add(tf.matmul(layer_2, weights['h3']), biases['b3']) - layer_3 = tf.nn.relu(layer_3) - layer_4 = tf.add(tf.matmul(layer_3, weights['h4']), biases['b4']) - layer_4 = tf.nn.relu(layer_4) - out_layer = tf.matmul(layer_4, weights['out']) + biases['out'] - return out_layer +X, Y = read_dataset() +X, Y = shuffle(X, Y, random_state=1) +X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.20, random_state=420) + +total_len = X_train.shape[0] # Total Samples +# =========== Parameters ============ +learning_rate = 0.01 # Learning rate for parameter updates +beta = 0.001 # L2 regularization constant +training_epochs = 1000 # EPOCHS +batch_size = 100 # Set to 1 for whole samples at once ## THIS CAUSES ERROR IN label = batch_y +display_step = 100 # Set to 1 for displaying all epochs +# dropout_rate = 0.9 + +# ============ Network Parameters ============ +n_hidden_1 = 500 # 1st layer number of neurons +n_hidden_2 = 500 # 2nd layer number of neurons +n_hidden_3 = 500 # 3rd layer number of neurons +n_hidden_4 = 500 # 4th layer number of neurons +n_input = X_train.shape[1] # number of columns(features) +n_classes = 1 # Only one output column, represents the predicted value + + + + + +# tf Graph input +x = tf.placeholder("float", [None, None], name='features') # Set to [, None] to definite value +y = tf.placeholder("float", [None], name='labels') # Set to a definite value + + # Construct the grpah for forward pass pred = multilayer_perceptron(x, weights, biases) -# Defining loss and optimizer -### reduce_sum ### -# cost = (tf.reduce_mean(tf.square(tf.transpose(pred)-y)) + 0.01*tf.nn.l2_loss(weights)) # USE tf.transpose ====> those 2 arrays are row and column, results in unexpected format, if let as early -cost = tf.reduce_mean(tf.square(tf.transpose(pred)-y)) -optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost) # Change to tf.GradientDescentOptimizer() and see +loss = tf.reduce_sum(tf.square(tf.transpose(pred)-y), name = "loss")/(2 * total_len) +cost = tf.reduce_sum(loss + beta * tf.nn.l2_loss(weights['h1']) + beta * tf.nn.l2_loss(weights['h2']) + beta * tf.nn.l2_loss(weights['h3']) + beta * tf.nn.l2_loss(weights['h4'] + beta * tf.nn.l2_loss(weights['out']))) +optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost) + @@ -106,56 +139,45 @@ def multilayer_perceptron(x, weights, biases): # Launch the graph with tf.Session() as sess: - # Select either Initializers - sess.run(tf.initialize_all_variables()) - # tf.global_variables_initializer() - # ============================= Each EPOCH graph Session============================================================== - - for epoch in range(training_epochs): + sess.run(tf.global_variables_initializer()) + for epoch in range(training_epochs+1): avg_cost = 0.0 total_batch = int(total_len/batch_size) - # Loop over all batches - for i in range(total_batch-1): + for i in range(total_batch-1): # Loop over all batches batch_x = X_train[i*batch_size:(i+1)*batch_size] batch_y = Y_train[i*batch_size:(i+1)*batch_size] - print ("batch number :", i) - # Run optimization op (backprop) and cost op (to get loss value) - _, c, p = sess.run([optimizer, cost, pred], feed_dict={x: batch_x, y: batch_y}) - # Compute average loss - avg_cost += c / total_batch - - - # sample prediction - label_value = batch_y - estimate = p # Predicted value - err = label_value-estimate - # print ("num batch:", total_batch) + _, c, p = sess.run([optimizer, cost, pred], feed_dict={x: batch_x, y: batch_y}) # Run optimization op (backprop) and cost op (to get loss value) + avg_cost += c / total_batch # Compute average loss # Display logs per epoch step if epoch % display_step == 0: - print ("Epoch:", '%4d' % (epoch+1), "cost=", "{:.9f}".format(avg_cost)) - print ("[*]----------------------------") + print ("Epoch : ", "%05d" % (epoch+1), " cost = ", " {:.9f} ".format(avg_cost)) + print ("[*]--------------------------------------------------------------[*]") for i in xrange(3): # Comparing the predicted values with Labeled values in display - print ("label value:", label_value[i], "estimated value:", estimate[i]) - print ("[*]============================") + print ("label value:", batch_y[i], "predicted value:", p[i]) + print ("[*]====================================================================================[*]") + - # ==================================================================================================================== print ("Optimization Finished!") - # # Test model - # correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1)) - # # Calculate accuracy - # accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) - # print ("Accuracy:", accuracy.eval({x: X_test, y: Y_test})) + print ("***********************************************") + print (" \t\t\t TESTING STARTS") + print ("***********************************************") - print ("TESTING STARTS") - accuracy = sess.run(cost, feed_dict={x:X_test, y: Y_test}) - predicted_vals = sess.run(pred, feed_dict={x: X_test}) + test_cost = sess.run(cost, feed_dict={x:X_test, y: Y_test}) + test_predicted_values = sess.run(pred, feed_dict={x: X_test}) # print ("Accuracy:", accuracy, "Predicted VALUE : ", predicted_vals) - print ("Labeled value : ", Y_test, " <<<>>> Predicted VALUE : ", predicted_vals) + for i in range(len(Y_test)): + print ("Labeled VALUE : ", Y_test[i], " \t\t\t >>>> Predicted VALUE : ", float(test_predicted_values[i])) + + + + print (" *********************************************** ") + print (" \t\t\t TESTING ENDS ") + print (" *********************************************** ") + - print ("TESTING ENDS") diff --git a/scribbled_NOT_main.py b/scribbled_NOT_main.py new file mode 100644 index 0000000..3f557e2 --- /dev/null +++ b/scribbled_NOT_main.py @@ -0,0 +1,230 @@ +from __future__ import absolute_import, division, print_function + +import tensorflow as tf +import matplotlib.pyplot as plt +import numpy as np +import scipy.io as sio +from sklearn.utils import shuffle +from sklearn.model_selection import train_test_split + + +''' +Changeable parameters +--------------------- +1. learning_rate +2. reg_constant +3. training_epochs +4. batch_size +5. display_step +6. test_size (splitting parameter for train:test) +7. Hidden layer neurons number + n_hidden_1 + n_hidden_2 = 500 + n_hidden_3 = 500 + n_hidden_4 = 500 +8. variance (for weights & biases, random normal initialization) +9. tf.reduce_sum OR tf.reduce_mean +10. Regularization method +11. Gradient Descend Method + optimizer = tf.train.GradientDescentOptimizer() ===> Gives all NaN values + optimizer = tf.train.AdamOptimizer() ===> Gives definite values +''' + +def read_dataset(): + + D = sio.loadmat('Brain_Integ.mat') + # Extract the fearues and labels + X = D['Integ_X'].astype('float32') # 560*399 + T = np.asarray([t[0] for t in D['Survival']]).astype('float32') # 560*1 + C = np.asarray([c[0] for c in D['Censored']]).astype('int32') # 560*1 + # TC = np.asarray([T for c in C if c==1]) + # Consider only the dead patient's data + TC = T[C==1] # Only retrieve the data from deceased patients where C == 1 + XC = X[C==1] + Y = np.asarray(TC) + X = np.asarray(XC) + + print ('Shape of X : ', X.shape) + print ('Shape of Y : ', Y.shape) + return (X, Y) + + + + + +X, Y = read_dataset() +X, Y = shuffle(X, Y, random_state=1) +X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.20, random_state=420) + +total_len = X_train.shape[0] # Total Samples +# =========== Parameters ============ +learning_rate = 0.01 # Learning rate for parameter updates +reg_constant = 0.01 ; beta = 0.001 # L2 regularization constant +training_epochs = 1000 # EPOCHS +batch_size = 100 # Set to 1 for whole samples at once ## THIS CAUSES ERROR IN label = batch_y +display_step = 100 # Set to 1 for displaying all epochs +# dropout_rate = 0.9 + +# ============ Network Parameters ============ +n_hidden_1 = 500 # 1st layer number of neurons +n_hidden_2 = 500 # 2nd layer number of neurons +n_hidden_3 = 500 # 3rd layer number of neurons +n_hidden_4 = 500 # 4th layer number of neurons +n_input = X_train.shape[1] # number of columns(features) +n_classes = 1 # Only one output column, represents the predicted value + + + + + +# tf Graph input +x = tf.placeholder("float", [None, None], name='features') # Set to [, None] to definite value +y = tf.placeholder("float", [None], name='labels') # Set to a definite value + +# layers' weights & biases initialization +variance = 0.1 # VARIANCE selection highly affects ## If set to 10, results in NaN values for predication and cost +weights = { + 'h1': tf.Variable(tf.random_normal([n_input, n_hidden_1], 0, variance)), + 'h2': tf.Variable(tf.random_normal([n_hidden_1, n_hidden_2], 0, variance)), + 'h3': tf.Variable(tf.random_normal([n_hidden_2, n_hidden_3], 0, variance)), + 'h4': tf.Variable(tf.random_normal([n_hidden_3, n_hidden_4], 0, variance)), + 'out': tf.Variable(tf.random_normal([n_hidden_4, n_classes], 0, variance)) +} +biases = { + 'b1': tf.Variable(tf.random_normal([n_hidden_1], 0, variance)), + 'b2': tf.Variable(tf.random_normal([n_hidden_2], 0, variance)), + 'b3': tf.Variable(tf.random_normal([n_hidden_3], 0, variance)), + 'b4': tf.Variable(tf.random_normal([n_hidden_4], 0, variance)), + 'out': tf.Variable(tf.random_normal([n_classes], 0, variance)) +} + +# Model Creation +def multilayer_perceptron(x, weights, biases): + # Hidden layers with RELU activation + layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1']) + layer_1 = tf.nn.relu(layer_1) + + layer_2 = tf.add(tf.matmul(layer_1, weights['h2']), biases['b2']) + layer_2 = tf.nn.relu(layer_2) + + layer_3 = tf.add(tf.matmul(layer_2, weights['h3']), biases['b3']) + layer_3 = tf.nn.relu(layer_3) + + layer_4 = tf.add(tf.matmul(layer_3, weights['h4']), biases['b4']) + layer_4 = tf.nn.relu(layer_4) + + out_layer = tf.matmul(layer_4, weights['out']) + biases['out'] + return out_layer + + + + + + +# Construct the grpah for forward pass +pred = multilayer_perceptron(x, weights, biases) +# ============================================================= DEFINING REGULARIZATION ======================================================== + +# # ============================================================= method 1 - wihtout regularizer =============================================== + +# # Defining loss and optimizer +# ### reduce_sum ### +# # cost = (tf.reduce_mean(tf.square(tf.transpose(pred)-y)) + 0.01*tf.nn.l2_loss(weights)) # USE tf.transpose ====> those 2 arrays are row and column, results in unexpected format, if let as early +# cost = tf.reduce_sum(tf.square(tf.transpose(pred)-y), name = "loss")/(2 * total_len) +# optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost) # Change to tf.GradientDescentOptimizer() and see + +# ============================================================= method 2 - using commonly tf.GraphKeys.REGULARIZATION_LOSSES ==================== + +# loss = tf.reduce_sum(tf.square(tf.transpose(pred)-y), name = "loss")/(2 * total_len) +# # loss = tf.reduce_mean(tf.square(tf.transpose(pred)-y)) +# reg_losses = tf.get_collection(tf.GraphKeys.REGULARIZATION_LOSSES) ## IS THIS L2 REG ??? +# cost = loss + reg_constant * sum(reg_losses) +# # optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost) # Change to tf.GradientDescentOptimizer() and see +# optimizer = tf.train.GradientDescentOptimizer( learning_rate = learning_rate ).minimize (cost) + + +# ============================================================== method 3 - create regularizer term for each weights============================== + + +# cost = tf.reduce_mean(tf.square(tf.transpose(pred)-y)) +# # optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost) # Change to tf.GradientDescentOptimizer() and see +# # Loss function using L2 Regularization +# regularizer = tf.nn.l2_loss(weights['h1']) # WORKS +# cost = tf.reduce_mean(cost + beta * regularizer) +# optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate).minimize(cost) + + +# ============================================================== method 4 - create regularizer term for all weights============================== + +loss = tf.reduce_sum(tf.square(tf.transpose(pred)-y), name = "loss")/(2 * total_len) +# optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost) # Change to tf.GradientDescentOptimizer() and see +# Loss function using L2 Regularization +# regularizer = tf.nn.l2_loss(weights['h1']) +cost = tf.reduce_mean(loss + beta * tf.nn.l2_loss(weights['h1']) + beta * tf.nn.l2_loss(weights['h2']) + beta * tf.nn.l2_loss(weights['h3']) + beta * tf.nn.l2_loss(weights['h4'] + beta * tf.nn.l2_loss(weights['out']))) +optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost) + +# ========================================================== END of Regularization process ======================================================== + + + + + +# Launch the graph +with tf.Session() as sess: + # Select either Initializers + # sess.run(tf.initialize_all_variables()) + sess.run(tf.global_variables_initializer()) + # ============================= Each EPOCH graph Session============================================================== + + for epoch in range(training_epochs+1): + avg_cost = 0.0 + total_batch = int(total_len/batch_size) + for i in range(total_batch-1): # Loop over all batches + batch_x = X_train[i*batch_size:(i+1)*batch_size] + batch_y = Y_train[i*batch_size:(i+1)*batch_size] + # print ("batch number :", i) + _, c, p = sess.run([optimizer, cost, pred], feed_dict={x: batch_x, y: batch_y}) # Run optimization op (backprop) and cost op (to get loss value) + avg_cost += c / total_batch # Compute average loss + + # Display logs per epoch step + if epoch % display_step == 0: + print ("Epoch : ", "%04d" % (epoch+1), " cost = ", " {:.9f} ".format(avg_cost)) + print ("[*]----------------------------") + for i in xrange(3): # Comparing the predicted values with Labeled values in display + print ("label value:", batch_y[i], "estimated value:", p[i]) + print ("[*]============================") + + + # ==================================================================================================================== + print ("Optimization Finished!") + + print ("***********************************************") + print (" \t\t\t TESTING STARTS") + print ("***********************************************") + + + test_cost = sess.run(cost, feed_dict={x:X_test, y: Y_test}) + test_predicted_values = sess.run(pred, feed_dict={x: X_test}) + # print ("Accuracy:", accuracy, "Predicted VALUE : ", predicted_vals) + for i in range(len(Y_test)): + print ("Labeled VALUE : ", Y_test[i], " \t\t\t >>>> Predicted VALUE : ", float(test_predicted_values[i])) + + + + print (" *********************************************** ") + print (" \t\t\t TESTING ENDS ") + print (" *********************************************** ") + + + # Graphic display + # plt.plot(X_train, Y_train, 'ro', label='Original data') + pred_value = sess.run(pred, feed_dict={x: X_train}) + plt.plot(Y_train, pred_value, label='Fitted line') + plt.legend() + plt.savefig('plot.png') + plt.show() + # plt.close() + + + + From 11340257dbdb883591475f5154f7d088c14cb966 Mon Sep 17 00:00:00 2001 From: ramraj Date: Mon, 18 Sep 2017 09:41:47 -0400 Subject: [PATCH 02/26] delete reg.py --- reg.py | 183 --------------------------------------------------------- 1 file changed, 183 deletions(-) delete mode 100644 reg.py diff --git a/reg.py b/reg.py deleted file mode 100644 index 3269f8f..0000000 --- a/reg.py +++ /dev/null @@ -1,183 +0,0 @@ -from __future__ import absolute_import, division, print_function - -import tensorflow as tf -import numpy as np -import scipy.io as sio -from sklearn.utils import shuffle -from sklearn.model_selection import train_test_split - - -''' -Changeable parameters OR variables ----------------------------------- -1. learning_rate -2. reg_constant -3. training_epochs -4. batch_size -5. display_step -6. test_size (splitting parameter for train:test) -7. Hidden layer neurons number - n_hidden_1 - n_hidden_2 = 500 - n_hidden_3 = 500 - n_hidden_4 = 500 -8. variance (for weights & biases, random normal initialization) -9. tf.reduce_sum OR tf.reduce_mean -10. Regularization method -11. Gradient Descend Method - optimizer = tf.train.GradientDescentOptimizer() ===> Gives all NaN values - optimizer = tf.train.AdamOptimizer() ===> Gives definite values -''' - -def read_dataset(): - - D = sio.loadmat('Brain_Integ.mat') - # Extract the fearues and labels - X = D['Integ_X'].astype('float32') # 560*399 - T = np.asarray([t[0] for t in D['Survival']]).astype('float32') # 560*1 - C = np.asarray([c[0] for c in D['Censored']]).astype('int32') # 560*1 - # TC = np.asarray([T for c in C if c==1]) - # Consider only the dead patient's data - TC = T[C==1] # Only retrieve the data from deceased patients where C == 1 - XC = X[C==1] - Y = np.asarray(TC) - X = np.asarray(XC) - - print ('Shape of X : ', X.shape) - print ('Shape of Y : ', Y.shape) - return (X, Y) - - - - -# Model Creation -def multilayer_perceptron(x, weights, biases): - # Hidden layers with RELU activation - layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1']) - layer_1 = tf.nn.relu(layer_1) - - layer_2 = tf.add(tf.matmul(layer_1, weights['h2']), biases['b2']) - layer_2 = tf.nn.relu(layer_2) - - layer_3 = tf.add(tf.matmul(layer_2, weights['h3']), biases['b3']) - layer_3 = tf.nn.relu(layer_3) - - layer_4 = tf.add(tf.matmul(layer_3, weights['h4']), biases['b4']) - layer_4 = tf.nn.relu(layer_4) - - out_layer = tf.matmul(layer_4, weights['out']) + biases['out'] - return out_layer - - - - - -# layers' weights & biases initialization -variance = 0.1 # VARIANCE selection highly affects ## If set to 10, results in NaN values for predication and cost -weights = { - 'h1': tf.Variable(tf.random_normal([n_input, n_hidden_1], 0, variance)), - 'h2': tf.Variable(tf.random_normal([n_hidden_1, n_hidden_2], 0, variance)), - 'h3': tf.Variable(tf.random_normal([n_hidden_2, n_hidden_3], 0, variance)), - 'h4': tf.Variable(tf.random_normal([n_hidden_3, n_hidden_4], 0, variance)), - 'out': tf.Variable(tf.random_normal([n_hidden_4, n_classes], 0, variance)) -} -biases = { - 'b1': tf.Variable(tf.random_normal([n_hidden_1], 0, variance)), - 'b2': tf.Variable(tf.random_normal([n_hidden_2], 0, variance)), - 'b3': tf.Variable(tf.random_normal([n_hidden_3], 0, variance)), - 'b4': tf.Variable(tf.random_normal([n_hidden_4], 0, variance)), - 'out': tf.Variable(tf.random_normal([n_classes], 0, variance)) -} - - - - - -X, Y = read_dataset() -X, Y = shuffle(X, Y, random_state=1) -X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.20, random_state=420) - -total_len = X_train.shape[0] # Total Samples -# =========== Parameters ============ -learning_rate = 0.01 # Learning rate for parameter updates -beta = 0.001 # L2 regularization constant -training_epochs = 1000 # EPOCHS -batch_size = 100 # Set to 1 for whole samples at once ## THIS CAUSES ERROR IN label = batch_y -display_step = 100 # Set to 1 for displaying all epochs -# dropout_rate = 0.9 - -# ============ Network Parameters ============ -n_hidden_1 = 500 # 1st layer number of neurons -n_hidden_2 = 500 # 2nd layer number of neurons -n_hidden_3 = 500 # 3rd layer number of neurons -n_hidden_4 = 500 # 4th layer number of neurons -n_input = X_train.shape[1] # number of columns(features) -n_classes = 1 # Only one output column, represents the predicted value - - - - - -# tf Graph input -x = tf.placeholder("float", [None, None], name='features') # Set to [, None] to definite value -y = tf.placeholder("float", [None], name='labels') # Set to a definite value - - - - -# Construct the grpah for forward pass -pred = multilayer_perceptron(x, weights, biases) - -loss = tf.reduce_sum(tf.square(tf.transpose(pred)-y), name = "loss")/(2 * total_len) -cost = tf.reduce_sum(loss + beta * tf.nn.l2_loss(weights['h1']) + beta * tf.nn.l2_loss(weights['h2']) + beta * tf.nn.l2_loss(weights['h3']) + beta * tf.nn.l2_loss(weights['h4'] + beta * tf.nn.l2_loss(weights['out']))) -optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost) - - - - - -# Launch the graph -with tf.Session() as sess: - - sess.run(tf.global_variables_initializer()) - for epoch in range(training_epochs+1): - avg_cost = 0.0 - total_batch = int(total_len/batch_size) - for i in range(total_batch-1): # Loop over all batches - batch_x = X_train[i*batch_size:(i+1)*batch_size] - batch_y = Y_train[i*batch_size:(i+1)*batch_size] - _, c, p = sess.run([optimizer, cost, pred], feed_dict={x: batch_x, y: batch_y}) # Run optimization op (backprop) and cost op (to get loss value) - avg_cost += c / total_batch # Compute average loss - - # Display logs per epoch step - if epoch % display_step == 0: - print ("Epoch : ", "%05d" % (epoch+1), " cost = ", " {:.9f} ".format(avg_cost)) - print ("[*]--------------------------------------------------------------[*]") - for i in xrange(3): # Comparing the predicted values with Labeled values in display - print ("label value:", batch_y[i], "predicted value:", p[i]) - print ("[*]====================================================================================[*]") - - - print ("Optimization Finished!") - - print ("***********************************************") - print (" \t\t\t TESTING STARTS") - print ("***********************************************") - - - test_cost = sess.run(cost, feed_dict={x:X_test, y: Y_test}) - test_predicted_values = sess.run(pred, feed_dict={x: X_test}) - # print ("Accuracy:", accuracy, "Predicted VALUE : ", predicted_vals) - for i in range(len(Y_test)): - print ("Labeled VALUE : ", Y_test[i], " \t\t\t >>>> Predicted VALUE : ", float(test_predicted_values[i])) - - - - print (" *********************************************** ") - print (" \t\t\t TESTING ENDS ") - print (" *********************************************** ") - - - - - From 768952eea5dd1000d5c27985590ff048fbd5e30d Mon Sep 17 00:00:00 2001 From: ramraj Date: Mon, 18 Sep 2017 09:42:39 -0400 Subject: [PATCH 03/26] TF/Slim converted deep regression model --- slim_deep_regression | 185 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 slim_deep_regression diff --git a/slim_deep_regression b/slim_deep_regression new file mode 100644 index 0000000..5e4bfd3 --- /dev/null +++ b/slim_deep_regression @@ -0,0 +1,185 @@ +from __future__ import absolute_import, division, print_function + +import tensorflow as tf +import matplotlib.pyplot as plt +import numpy as np +import scipy.io as sio +import tensorflow.contrib.slim as slim +from sklearn.utils import shuffle +from sklearn.model_selection import train_test_split + + +''' +Changeable parameters OR variables +---------------------------------- +1. LEARNING_RATE +2. reg_constant +3. TRAINING_EPOCHS +4. BATCH_SIZE +5. DISPLAY_STEP +6. test_size (splitting parameter for train:test) +7. Hidden layer neurons number + N_HIDDEN_1 + N_HIDDEN_2 + N_HIDDEN_3 + N_HIDDEN_4 +8. VARIANCE (for weights & biases, random normal initialization) +9. tf.reduce_sum OR tf.reduce_mean +10. Regularization method +11. Gradient Descend Method + optimizer = tf.train.GradientDescentOptimizer() ===> Gives all NaN values + optimizer = tf.train.AdamOptimizer() ===> Gives definite values +''' + + +# =========== Parameters ============ +LEARNING_RATE = 0.01 # Learning rate +BETA = 0.001 # L2 regularization constant +TRAINING_EPOCHS = 1000 # EPOCHS +BATCH_SIZE = 100 # Set to 1 for whole samples at once +# THIS CAUSES ERROR IN label = batch_y +DISPLAY_STEP = 100 # Set to 1 for displaying all epochs +# dropout_rate = 0.9 +VARIANCE = 0.1 # VARIANCE selection highly affects +# If set to 10, results in NaN values for predication and cost + +# ============ Network Parameters ============ +N_HIDDEN_1 = 500 # 1st layer number of neurons +N_HIDDEN_2 = 500 # 2nd layer number of neurons +N_HIDDEN_3 = 500 # 3rd layer number of neurons +N_HIDDEN_4 = 500 # 4th layer number of neurons + +N_CLASSES = 1 # Only one output prediction column + + +def load_data_set(name=None): + """ + This function reads the data file and extracts the features and labelled + values. + Then according to that patient is dead, only those observations would be + taken care + for deep learning trainig. + Args: + Nothing + Returns: + `Numpy array`, extracted feature columns and label column. + Example: + >>> read_dataset() + ( [[2.3, 2.4, 6.5],[2.3, 5.4,3.3]], [12, 82] ) + """ + + data = sio.loadmat('Brain_Integ.mat') # Extract the fearues and labels + fearues = data['Integ_X'].astype('float32') # 560*399 + time_of_death = np.asarray([t[0] for t in data['Survival']])\ + .astype('float32') # 560*1 + censored = np.asarray([c[0] for c in data['Censored']])\ + .astype('int32') # 560*1 + censored_time_of_death = time_of_death[censored == 1] + # Only retrieve the data from deceased patients where C == 1 + censored_features = fearues[censored == 1] + y = np.asarray(censored_time_of_death) + x = np.asarray(censored_features) + + print('Shape of X : ', x.shape) + print('Shape of Y : ', y.shape) + return (x, y) + + +data_x, data_y = load_data_set() +data_x, data_y = shuffle(data_x, data_y, random_state=1) +x_train, x_test, y_train, y_test = train_test_split(data_x, data_y, + test_size=0.20, + random_state=420) + +total_observations = x_train.shape[0] # Total Samples +input_features = x_train.shape[1] # number of columns(features) + + +# Model Creation +def multilayer_neural_network_model(x, scope="deep_regression"): + """Creates a deep regression model. + + Args: + inputs: A node that yields a `Tensor` of size [total_observations, \ + input_features]. + + Returns: + predictions: `Tensor` of shape [1] (scalar) of response. + """ + + with slim.arg_scope([slim.fully_connected], + activation_fn=tf.nn.relu, + weights_regularizer=slim.l2_regularizer(BETA)): + + # Creates a FC layer from the inputs with defined hidden units. + net = slim.fully_connected(x, N_HIDDEN_1, scope='fc1') + net = slim.fully_connected(net, N_HIDDEN_2, scope='fc2') + net = slim.fully_connected(net, N_HIDDEN_3, scope='fc3') + net = slim.fully_connected(net, N_HIDDEN_4, scope='fc4') + predictions = slim.fully_connected(net, 1, activation_fn=None, + scope='prediction') + + return predictions + + +# tf.Graph input +x = tf.placeholder("float", [None, input_features], name='features') +y = tf.placeholder("float", [None], name='labels') # Set to a definite value + + +# Construct the grpah for forward pass +pred = multilayer_neural_network_model(x) + +loss = tf.reduce_sum(tf.square(tf.transpose(pred) - y), name="loss") / \ + (2 * total_observations) + +optimizer = tf.train.AdamOptimizer(learning_rate=LEARNING_RATE).minimize(loss) + + +# Launch the graph +with tf.Session() as sess: + + sess.run(tf.global_variables_initializer()) + for epoch in range(TRAINING_EPOCHS + 1): + avg_cost = 0.0 + total_batch = int(total_observations / BATCH_SIZE) + for i in range(total_batch - 1): # Loop over all batches + batch_x = x_train[i * BATCH_SIZE:(i + 1) * BATCH_SIZE] + batch_y = y_train[i * BATCH_SIZE:(i + 1) * BATCH_SIZE] + _, batch_cost, batch_pred = sess.run([optimizer, loss, pred], + feed_dict={x: batch_x, + y: batch_y}) + # Run optimization op (backprop) and cost op (to get loss value) + avg_cost += batch_cost / total_batch # Compute average loss + + if epoch % DISPLAY_STEP == 0: # Display logs per epoch step + print("Epoch : ", "%05d" % (epoch + 1), + " cost = ", " {:.9f} ".format(avg_cost)) + for i in xrange(3): # Comparing orig, predicted values + print("label value:", batch_y[i], "predicted value:", + batch_pred[i]) + print("----------------------------------------------------------") + pred_out = sess.run(pred, feed_dict={x: x_train}) + + print("Training Finished!") + + # TESTING PHASE # + _, test_predicted_values = sess.run([loss, pred], + feed_dict={x: x_test, + y: y_test}) + for i in range(len(y_test)): + print("Labeled VALUE : ", y_test[i], " \t\t\t \ + >>>> Predicted VALUE : ", float(test_predicted_values[i])) + +#### ------------------ PLOTTING -------------------------------------- #### +plt.plot(y_train, pred_out, 'ro', + label='Correlation of Original with Predicted train data') +# Above is for marking points in space of labels and features +plt.plot(y_test, test_predicted_values, 'bo', + label='Correlation of Original with Predicted test data') +plt.title('Comparison of the predicting performance') +plt.ylabel('Predicted data') +plt.xlabel('Original data') +plt.savefig('Correlation.png') +plt.legend() # This enable the label over the plot display +plt.show() # This is important for showing the plotted graph From d850fd6a1a52bc65520a92837e19b8e7933a5dd2 Mon Sep 17 00:00:00 2001 From: ramraj Date: Mon, 18 Sep 2017 09:43:41 -0400 Subject: [PATCH 04/26] changed file name from default to .py --- slim_deep_regression => slim_deep_regression.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename slim_deep_regression => slim_deep_regression.py (100%) diff --git a/slim_deep_regression b/slim_deep_regression.py similarity index 100% rename from slim_deep_regression rename to slim_deep_regression.py From 1bc7d431415c321e6e3e0a72b47829c5fab8a45a Mon Sep 17 00:00:00 2001 From: ramraj Date: Mon, 18 Sep 2017 09:50:53 -0400 Subject: [PATCH 05/26] Squeezed the DNN architecture code block --- slim_deep_regression.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/slim_deep_regression.py b/slim_deep_regression.py index 5e4bfd3..453c3d2 100644 --- a/slim_deep_regression.py +++ b/slim_deep_regression.py @@ -107,15 +107,12 @@ def multilayer_neural_network_model(x, scope="deep_regression"): predictions: `Tensor` of shape [1] (scalar) of response. """ - with slim.arg_scope([slim.fully_connected], - activation_fn=tf.nn.relu, + with slim.arg_scope([slim.fully_connected], activation_fn=tf.nn.relu, weights_regularizer=slim.l2_regularizer(BETA)): - # Creates a FC layer from the inputs with defined hidden units. - net = slim.fully_connected(x, N_HIDDEN_1, scope='fc1') - net = slim.fully_connected(net, N_HIDDEN_2, scope='fc2') - net = slim.fully_connected(net, N_HIDDEN_3, scope='fc3') - net = slim.fully_connected(net, N_HIDDEN_4, scope='fc4') + net = slim.stack(x, slim.fully_connected, + [N_HIDDEN_1, N_HIDDEN_2, N_HIDDEN_3, N_HIDDEN_4], + scope='fc') predictions = slim.fully_connected(net, 1, activation_fn=None, scope='prediction') From 9d978f2a2106bb833f63e4f0b3b66a606642d5cf Mon Sep 17 00:00:00 2001 From: ramraj Date: Tue, 19 Sep 2017 09:12:45 -0400 Subject: [PATCH 06/26] deleting initial main script --- slim_deep_regression.py | 182 ---------------------------------------- 1 file changed, 182 deletions(-) delete mode 100644 slim_deep_regression.py diff --git a/slim_deep_regression.py b/slim_deep_regression.py deleted file mode 100644 index 453c3d2..0000000 --- a/slim_deep_regression.py +++ /dev/null @@ -1,182 +0,0 @@ -from __future__ import absolute_import, division, print_function - -import tensorflow as tf -import matplotlib.pyplot as plt -import numpy as np -import scipy.io as sio -import tensorflow.contrib.slim as slim -from sklearn.utils import shuffle -from sklearn.model_selection import train_test_split - - -''' -Changeable parameters OR variables ----------------------------------- -1. LEARNING_RATE -2. reg_constant -3. TRAINING_EPOCHS -4. BATCH_SIZE -5. DISPLAY_STEP -6. test_size (splitting parameter for train:test) -7. Hidden layer neurons number - N_HIDDEN_1 - N_HIDDEN_2 - N_HIDDEN_3 - N_HIDDEN_4 -8. VARIANCE (for weights & biases, random normal initialization) -9. tf.reduce_sum OR tf.reduce_mean -10. Regularization method -11. Gradient Descend Method - optimizer = tf.train.GradientDescentOptimizer() ===> Gives all NaN values - optimizer = tf.train.AdamOptimizer() ===> Gives definite values -''' - - -# =========== Parameters ============ -LEARNING_RATE = 0.01 # Learning rate -BETA = 0.001 # L2 regularization constant -TRAINING_EPOCHS = 1000 # EPOCHS -BATCH_SIZE = 100 # Set to 1 for whole samples at once -# THIS CAUSES ERROR IN label = batch_y -DISPLAY_STEP = 100 # Set to 1 for displaying all epochs -# dropout_rate = 0.9 -VARIANCE = 0.1 # VARIANCE selection highly affects -# If set to 10, results in NaN values for predication and cost - -# ============ Network Parameters ============ -N_HIDDEN_1 = 500 # 1st layer number of neurons -N_HIDDEN_2 = 500 # 2nd layer number of neurons -N_HIDDEN_3 = 500 # 3rd layer number of neurons -N_HIDDEN_4 = 500 # 4th layer number of neurons - -N_CLASSES = 1 # Only one output prediction column - - -def load_data_set(name=None): - """ - This function reads the data file and extracts the features and labelled - values. - Then according to that patient is dead, only those observations would be - taken care - for deep learning trainig. - Args: - Nothing - Returns: - `Numpy array`, extracted feature columns and label column. - Example: - >>> read_dataset() - ( [[2.3, 2.4, 6.5],[2.3, 5.4,3.3]], [12, 82] ) - """ - - data = sio.loadmat('Brain_Integ.mat') # Extract the fearues and labels - fearues = data['Integ_X'].astype('float32') # 560*399 - time_of_death = np.asarray([t[0] for t in data['Survival']])\ - .astype('float32') # 560*1 - censored = np.asarray([c[0] for c in data['Censored']])\ - .astype('int32') # 560*1 - censored_time_of_death = time_of_death[censored == 1] - # Only retrieve the data from deceased patients where C == 1 - censored_features = fearues[censored == 1] - y = np.asarray(censored_time_of_death) - x = np.asarray(censored_features) - - print('Shape of X : ', x.shape) - print('Shape of Y : ', y.shape) - return (x, y) - - -data_x, data_y = load_data_set() -data_x, data_y = shuffle(data_x, data_y, random_state=1) -x_train, x_test, y_train, y_test = train_test_split(data_x, data_y, - test_size=0.20, - random_state=420) - -total_observations = x_train.shape[0] # Total Samples -input_features = x_train.shape[1] # number of columns(features) - - -# Model Creation -def multilayer_neural_network_model(x, scope="deep_regression"): - """Creates a deep regression model. - - Args: - inputs: A node that yields a `Tensor` of size [total_observations, \ - input_features]. - - Returns: - predictions: `Tensor` of shape [1] (scalar) of response. - """ - - with slim.arg_scope([slim.fully_connected], activation_fn=tf.nn.relu, - weights_regularizer=slim.l2_regularizer(BETA)): - - net = slim.stack(x, slim.fully_connected, - [N_HIDDEN_1, N_HIDDEN_2, N_HIDDEN_3, N_HIDDEN_4], - scope='fc') - predictions = slim.fully_connected(net, 1, activation_fn=None, - scope='prediction') - - return predictions - - -# tf.Graph input -x = tf.placeholder("float", [None, input_features], name='features') -y = tf.placeholder("float", [None], name='labels') # Set to a definite value - - -# Construct the grpah for forward pass -pred = multilayer_neural_network_model(x) - -loss = tf.reduce_sum(tf.square(tf.transpose(pred) - y), name="loss") / \ - (2 * total_observations) - -optimizer = tf.train.AdamOptimizer(learning_rate=LEARNING_RATE).minimize(loss) - - -# Launch the graph -with tf.Session() as sess: - - sess.run(tf.global_variables_initializer()) - for epoch in range(TRAINING_EPOCHS + 1): - avg_cost = 0.0 - total_batch = int(total_observations / BATCH_SIZE) - for i in range(total_batch - 1): # Loop over all batches - batch_x = x_train[i * BATCH_SIZE:(i + 1) * BATCH_SIZE] - batch_y = y_train[i * BATCH_SIZE:(i + 1) * BATCH_SIZE] - _, batch_cost, batch_pred = sess.run([optimizer, loss, pred], - feed_dict={x: batch_x, - y: batch_y}) - # Run optimization op (backprop) and cost op (to get loss value) - avg_cost += batch_cost / total_batch # Compute average loss - - if epoch % DISPLAY_STEP == 0: # Display logs per epoch step - print("Epoch : ", "%05d" % (epoch + 1), - " cost = ", " {:.9f} ".format(avg_cost)) - for i in xrange(3): # Comparing orig, predicted values - print("label value:", batch_y[i], "predicted value:", - batch_pred[i]) - print("----------------------------------------------------------") - pred_out = sess.run(pred, feed_dict={x: x_train}) - - print("Training Finished!") - - # TESTING PHASE # - _, test_predicted_values = sess.run([loss, pred], - feed_dict={x: x_test, - y: y_test}) - for i in range(len(y_test)): - print("Labeled VALUE : ", y_test[i], " \t\t\t \ - >>>> Predicted VALUE : ", float(test_predicted_values[i])) - -#### ------------------ PLOTTING -------------------------------------- #### -plt.plot(y_train, pred_out, 'ro', - label='Correlation of Original with Predicted train data') -# Above is for marking points in space of labels and features -plt.plot(y_test, test_predicted_values, 'bo', - label='Correlation of Original with Predicted test data') -plt.title('Comparison of the predicting performance') -plt.ylabel('Predicted data') -plt.xlabel('Original data') -plt.savefig('Correlation.png') -plt.legend() # This enable the label over the plot display -plt.show() # This is important for showing the plotted graph From bc9bf143b8b7dca82e9b9bbdbc74d3be3fdbdf96 Mon Sep 17 00:00:00 2001 From: ramraj Date: Tue, 19 Sep 2017 09:14:52 -0400 Subject: [PATCH 07/26] New files added (deep_regression.py) --- Correlation.png | Bin 0 -> 34008 bytes deep_regression.py | 247 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 247 insertions(+) create mode 100644 Correlation.png create mode 100644 deep_regression.py diff --git a/Correlation.png b/Correlation.png new file mode 100644 index 0000000000000000000000000000000000000000..48c60545d94123e93c17ae267c4d4d5c3c632077 GIT binary patch literal 34008 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
!Y(>R_z85Dni`PinA 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

gps~Pn?LH3P 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

9g8a;fXaAU3|KUA-1hyu} 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