From 573d0b724aa42e1494d4cb3efa4121d0701d70b4 Mon Sep 17 00:00:00 2001 From: tgupta6 <tgupta6@illinois.edu> Date: Wed, 9 Mar 2016 12:57:21 -0600 Subject: [PATCH] Working code for atr (color) classifier --- color_classifiers/atr_data_io_helper.py | 2 +- color_classifiers/atr_data_io_helper.pyc | Bin 0 -> 4538 bytes color_classifiers/eval_atr_classifier.py | 16 ++++++++-------- color_classifiers/train_atr_classifier.py | 13 ++++++------- color_classifiers/train_atr_classifier.pyc | Bin 0 -> 7635 bytes 5 files changed, 15 insertions(+), 16 deletions(-) create mode 100644 color_classifiers/atr_data_io_helper.pyc create mode 100644 color_classifiers/train_atr_classifier.pyc diff --git a/color_classifiers/atr_data_io_helper.py b/color_classifiers/atr_data_io_helper.py index 67337b8..a68f75e 100644 --- a/color_classifiers/atr_data_io_helper.py +++ b/color_classifiers/atr_data_io_helper.py @@ -42,7 +42,7 @@ def atr_mini_batch_loader(json_filename, image_dir, mean_image, start_index, bat return (atr_images, atr_labels) def mean_image_batch(json_filename, image_dir, start_index, batch_size, img_height=100, img_width=100, channels=3): - batch = obj_mini_batch_loader(json_filename, image_dir, np.empty([]), start_index, batch_size, img_height, img_width, channels) + batch = atr_mini_batch_loader(json_filename, image_dir, np.empty([]), start_index, batch_size, img_height, img_width, channels) mean_image = np.mean(batch[0], 0) return mean_image diff --git a/color_classifiers/atr_data_io_helper.pyc b/color_classifiers/atr_data_io_helper.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f1e7f0bf9e4b06fc1016b65356fdae76ff343f8e GIT binary patch literal 4538 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 Ich#c$C*2>tkpKVy literal 0 HcmV?d00001 diff --git a/color_classifiers/eval_atr_classifier.py b/color_classifiers/eval_atr_classifier.py index 2f41202..c6a14dd 100644 --- a/color_classifiers/eval_atr_classifier.py +++ b/color_classifiers/eval_atr_classifier.py @@ -5,33 +5,33 @@ import matplotlib.image as mpimg import numpy as np from scipy import misc import tensorflow as tf -import obj_data_io_helper as shape_data_loader -from train_obj_classifier import placeholder_inputs, comp_graph_v_1, evaluation +import atr_data_io_helper as atr_data_loader +from train_atr_classifier import placeholder_inputs, comp_graph_v_2, evaluation sess=tf.InteractiveSession() x, y, keep_prob = placeholder_inputs() -y_pred = comp_graph_v_1(x, y, keep_prob) +y_pred = comp_graph_v_2(x, y, keep_prob) accuracy = evaluation(y, y_pred) saver = tf.train.Saver() -saver.restore(sess, '/home/tanmay/Code/GenVQA/Exp_Results/Shape_Classifier_v_1/obj_classifier_9.ckpt') +saver.restore(sess, '/home/tanmay/Code/GenVQA/Exp_Results/Atr_Classifier_v_1/obj_classifier_1.ckpt') -mean_image = np.load('/home/tanmay/Code/GenVQA/Exp_Results/Shape_Classifier_v_1/mean_image.npy') +mean_image = np.load('/home/tanmay/Code/GenVQA/Exp_Results/Atr_Classifier_v_1/mean_image.npy') # Test Data test_json_filename = '/home/tanmay/Code/GenVQA/GenVQA/shapes_dataset/test_anno.json' image_dir = '/home/tanmay/Code/GenVQA/GenVQA/shapes_dataset/images' # Base dir for html visualizer -html_dir = '/home/tanmay/Code/GenVQA/Exp_Results/Shape_Classifier_v_1/html' +html_dir = '/home/tanmay/Code/GenVQA/Exp_Results/Atr_Classifier_v_1/html' if not os.path.exists(html_dir): os.mkdir(html_dir) # HTML file writer -html_writer = shape_data_loader.html_obj_table_writer(os.path.join(html_dir,'index.html')) +html_writer = atr_data_loader.html_atr_table_writer(os.path.join(html_dir,'index.html')) col_dict={ 0: 'Grount Truth', 1: 'Prediction', @@ -47,7 +47,7 @@ shape_dict = { batch_size = 100 correct = 0 for i in range(50): - test_batch = shape_data_loader.obj_mini_batch_loader(test_json_filename, image_dir, mean_image, 10000+i*batch_size, batch_size, 75, 75) + test_batch = atr_data_loader.atr_mini_batch_loader(test_json_filename, image_dir, mean_image, 10000+i*batch_size, batch_size, 75, 75) feed_dict_test={x: test_batch[0], y: test_batch[1], keep_prob: 1.0} result = sess.run([accuracy, y_pred], feed_dict=feed_dict_test) correct = correct + result[0]*batch_size diff --git a/color_classifiers/train_atr_classifier.py b/color_classifiers/train_atr_classifier.py index 6d9c88f..1bc622a 100644 --- a/color_classifiers/train_atr_classifier.py +++ b/color_classifiers/train_atr_classifier.py @@ -89,24 +89,23 @@ def comp_graph_v_1(x, y, keep_prob): def comp_graph_v_2(x, y, keep_prob): # Specify computation graph - W_conv1 = weight_variable([5, 5, 3, 10]) - b_conv1 = bias_variable([10]) + W_conv1 = weight_variable([5, 5, 3, 4]) + b_conv1 = bias_variable([4]) h_conv1 = tf.nn.relu(conv2d(x, W_conv1) + b_conv1) h_pool1 = max_pool_2x2(h_conv1) h_conv1_drop = tf.nn.dropout(h_pool1, keep_prob) - W_conv2 = weight_variable([5, 5, 10, 20]) - b_conv2 = bias_variable([20]) + W_conv2 = weight_variable([3, 3, 4, 8]) + b_conv2 = bias_variable([8]) h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2) h_pool2 = max_pool_2x2(h_conv2) - h_conv2_drop = tf.nn.dropout(h_pool2, keep_prob) - W_fc1 = weight_variable([7*7*20, 4]) + W_fc1 = weight_variable([7*7*8, 4]) b_fc1 = bias_variable([4]) - h_pool2_flat = tf.reshape(h_pool2, [-1, 7*7*20]) + h_pool2_flat = tf.reshape(h_pool2, [-1, 7*7*8]) h_pool2_flat_drop = tf.nn.dropout(h_pool2_flat, keep_prob) y_pred = tf.nn.softmax(tf.matmul(h_pool2_flat_drop,W_fc1) + b_fc1) diff --git a/color_classifiers/train_atr_classifier.pyc b/color_classifiers/train_atr_classifier.pyc new file mode 100644 index 0000000000000000000000000000000000000000..513dd9fab63523be1e847885b6c07fe3093f399c GIT binary patch literal 7635 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 bf3c7A^9z$B_^rtA_~hc`+T`TqTUG1dGfz&Z literal 0 HcmV?d00001 -- GitLab