From 2ed2f60a2c0733c0f76f043760963f3157d3f691 Mon Sep 17 00:00:00 2001
From: tgupta6 <tgupta6@illinois.edu>
Date: Tue, 4 Oct 2016 03:40:14 -0500
Subject: [PATCH] make ans eval and train compatible with each other (resolved
 conflict in ans train)

Conflicts:
	answer_classifier_cached_features/train.py
---
 answer_classifier_cached_features/eval.py  |  6 +++-
 answer_classifier_cached_features/train.py | 37 +++++++++++-----------
 2 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/answer_classifier_cached_features/eval.py b/answer_classifier_cached_features/eval.py
index 51d0080..046161c 100644
--- a/answer_classifier_cached_features/eval.py
+++ b/answer_classifier_cached_features/eval.py
@@ -51,6 +51,8 @@ def create_batch_generator(mode):
         qids_json,
         constants.vocab_json,
         constants.vqa_answer_vocab_json,
+        constants.object_labels_json,
+        constants.attribute_labels_json,
         constants.image_size,
         constants.num_region_proposals,
         constants.num_negative_answers,
@@ -267,13 +269,15 @@ if __name__=='__main__':
         0,
         0,
         constants.answer_obj_atr_loss_wt,
+        constants.answer_ans_loss_wt,
+        constants.answer_mil_loss_wt,
         resnet_feat_dim=constants.resnet_feat_dim,
         training=False)
 
     print 'Starting a session...'
     config = tf.ConfigProto()
     config.gpu_options.allow_growth = True
-    config.gpu_options.per_process_gpu_memory_fraction = 0.5
+    config.gpu_options.per_process_gpu_memory_fraction = 0.9
     sess = tf.Session(config=config, graph=graph.tf_graph)
 
     print 'Creating initializer...'
diff --git a/answer_classifier_cached_features/train.py b/answer_classifier_cached_features/train.py
index 4833533..7bd5ebe 100644
--- a/answer_classifier_cached_features/train.py
+++ b/answer_classifier_cached_features/train.py
@@ -484,23 +484,24 @@ class graph_creator():
                     ["accuracy_answer"],
                     self.moving_average_accuracy)
 
-            # object
-            self.object_accuracy = self.add_object_accuracy_computation(
-                self.object_scores_with_labels,
-                self.plh['object_labels'])
-
-            object_accuracy_summary = tf.scalar_summary(
-                "accuracy_object", 
-                self.object_accuracy)
-
-            # attributes
-            self.attribute_accuracy = self.add_attribute_accuracy_computation(
-                self.attribute_scores_with_labels,
-                self.plh['attribute_labels'])
-
-            attribute_accuracy_summary = tf.scalar_summary(
-                "accuracy_attribute", 
-                self.attribute_accuracy)
+            if self.training:
+                # object
+                self.object_accuracy = self.add_object_accuracy_computation(
+                    self.object_scores_with_labels,
+                    self.plh['object_labels'])
+
+                object_accuracy_summary = tf.scalar_summary(
+                    "accuracy_object", 
+                    self.object_accuracy)
+
+                # attributes
+                self.attribute_accuracy = self.add_attribute_accuracy_computation(
+                    self.attribute_scores_with_labels,
+                    self.plh['attribute_labels'])
+
+                attribute_accuracy_summary = tf.scalar_summary(
+                    "accuracy_attribute", 
+                    self.attribute_accuracy)
             
     def add_answer_accuracy_computation(self, scores):
         with tf.variable_scope('answer_accuracy'):
@@ -896,7 +897,7 @@ def train(
             logger.log(iter, False, eval_vars_dict)
             iter+=1
 
-            if iter%8000==0:
+            if iter%8000==0 and iter!=0:
                 gc.collect()
 
         logger.log(iter-1, True, eval_vars_dict)
-- 
GitLab