diff --git a/answer_classifier_cached_features/eval.py b/answer_classifier_cached_features/eval.py
index 51d0080ed9c18921e0560fbc5198838321c71d48..046161ce4c9a4438a2eff0937081c8585a51cff7 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 e2bd786192c4ccca3d472b9416cf6fbce8d098ad..7bd5ebee4b3abda1781d68488afb934c8db40340 100644
--- a/answer_classifier_cached_features/train.py
+++ b/answer_classifier_cached_features/train.py
@@ -15,7 +15,7 @@ import numpy as np
 import pdb
 from itertools import izip
 import tensorflow as tf
-
+import gc
 
 class graph_creator():
     def __init__(
@@ -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'):
@@ -895,7 +896,10 @@ def train(
                 zip(vars_to_eval_names, eval_vars)}
             logger.log(iter, False, eval_vars_dict)
             iter+=1
-            
+
+            if iter%8000==0 and iter!=0:
+                gc.collect()
+
         logger.log(iter-1, True, eval_vars_dict)