diff --git a/examples/automated_deep_compression/ADC.py b/examples/automated_deep_compression/ADC.py
index 6361941e7a10d95a9863408c5f0db9f699c17b71..33c7bb8c96d95793bc7a89eb0feef982e4bef682 100755
--- a/examples/automated_deep_compression/ADC.py
+++ b/examples/automated_deep_compression/ADC.py
@@ -212,9 +212,6 @@ def amc_reward_fn(env, top1, top5, vloss, total_macs):
     return reward
 
 
-experimental_reward_fn = harmonic_mean_reward_fn
-
-
 def do_adc_internal(model, args, optimizer_data, validate_fn, save_checkpoint_fn, train_fn):
     dataset = args.dataset
     arch = args.arch
@@ -245,7 +242,8 @@ def do_adc_internal(model, args, optimizer_data, validate_fn, save_checkpoint_fn
             'num_ft_epochs': num_ft_epochs,
             'action_range': action_range,
             'conv_cnt': conv_cnt,
-            'reward_frequency': args.amc_reward_frequency})
+            'reward_frequency': args.amc_reward_frequency,
+            'ft_frequency': args.amc_ft_frequency})
 
     #net_wrapper = NetworkWrapper(model, app_args, services)
     #return sample_networks(net_wrapper, services)
@@ -260,7 +258,7 @@ def do_adc_internal(model, args, optimizer_data, validate_fn, save_checkpoint_fn
         amc_cfg.action_constrain_fn = DistillerWrapperEnvironment.get_action
     elif args.amc_protocol == "mac-constrained-experimental":
         amc_cfg.target_density = args.amc_target_density
-        amc_cfg.reward_fn = experimental_reward_fn
+        amc_cfg.reward_fn = amc_reward_fn
         amc_cfg.action_constrain_fn = None
     else:
         raise ValueError("{} is not supported currently".format(args.amc_protocol))
@@ -330,19 +328,21 @@ resnet50_params = ["module.layer1.0.conv1.weight", "module.layer1.0.conv2.weight
                    "module.layer4.1.conv1.weight", "module.layer4.1.conv2.weight",
                    "module.layer4.2.conv1.weight", "module.layer4.2.conv2.weight"]
 
-resnet20_params = ["module.layer1.0.conv1.weight", "module.layer2.0.conv1.weight", "module.layer3.0.conv1.weight",
-                   "module.layer1.1.conv1.weight", "module.layer2.1.conv1.weight", "module.layer3.1.conv1.weight",
-                   "module.layer1.2.conv1.weight", "module.layer2.2.conv1.weight", "module.layer3.2.conv1.weight"]
+resnet20_params = ["module.layer1.0.conv1.weight", "module.layer1.1.conv1.weight", "module.layer1.2.conv1.weight",
+                   "module.layer2.0.conv1.weight", "module.layer2.1.conv1.weight", "module.layer2.2.conv1.weight",
+                   "module.layer3.0.conv1.weight", "module.layer3.1.conv1.weight", "module.layer3.2.conv1.weight"]
+
+resnet56_params = ["module.layer1.0.conv1.weight", "module.layer1.1.conv1.weight", "module.layer1.2.conv1.weight",
+                   "module.layer1.3.conv1.weight", "module.layer1.4.conv1.weight", "module.layer1.5.conv1.weight",
+                   "module.layer1.6.conv1.weight", "module.layer1.7.conv1.weight", "module.layer1.8.conv1.weight",
 
-resnet56_params = [ "module.layer1.0.conv1.weight", "module.layer2.0.conv1.weight", "module.layer3.0.conv1.weight",
-                    "module.layer1.1.conv1.weight", "module.layer2.1.conv1.weight", "module.layer3.1.conv1.weight",
-                    "module.layer1.2.conv1.weight", "module.layer2.2.conv1.weight", "module.layer3.2.conv1.weight",
-                    "module.layer1.3.conv1.weight", "module.layer2.3.conv1.weight", "module.layer3.3.conv1.weight",
-                    "module.layer1.4.conv1.weight", "module.layer2.4.conv1.weight", "module.layer3.4.conv1.weight",
-                    "module.layer1.5.conv1.weight", "module.layer2.5.conv1.weight", "module.layer3.5.conv1.weight",
-                    "module.layer1.6.conv1.weight", "module.layer2.6.conv1.weight", "module.layer3.6.conv1.weight",
-                    "module.layer1.7.conv1.weight", "module.layer2.7.conv1.weight", "module.layer3.7.conv1.weight",
-                    "module.layer1.8.conv1.weight", "module.layer2.8.conv1.weight", "module.layer3.8.conv1.weight"]
+                   "module.layer2.0.conv1.weight", "module.layer2.1.conv1.weight", "module.layer2.2.conv1.weight",
+                   "module.layer2.3.conv1.weight", "module.layer2.4.conv1.weight", "module.layer2.5.conv1.weight",
+                   "module.layer2.6.conv1.weight", "module.layer2.7.conv1.weight", "module.layer2.8.conv1.weight",
+
+                   "module.layer3.0.conv1.weight", "module.layer3.1.conv1.weight", "module.layer3.2.conv1.weight",
+                   "module.layer3.3.conv1.weight", "module.layer3.4.conv1.weight", "module.layer3.5.conv1.weight",
+                   "module.layer3.6.conv1.weight", "module.layer3.7.conv1.weight", "module.layer3.8.conv1.weight"]
 
 resnet50_layers = [param[:-len(".weight")] for param in resnet50_params]
 resnet20_layers = [param[:-len(".weight")] for param in resnet20_params]
@@ -633,11 +633,12 @@ class DistillerWrapperEnvironment(gym.Env):
             normalized_nnz = total_nnz / self.dense_model_size * 100
             self.finalize_episode(top1, reward, total_macs, normalized_macs,
                                   normalized_nnz, self.action_history, self.agent_action_history)
-
             self.episode += 1
         else:
+            if self.amc_cfg.ft_frequency is not None and self.current_layer_id % self.amc_cfg.ft_frequency == 0:
+                self.net_wrapper.train(1, self.episode)
             observation = self.get_obs()
-            if self.amc_cfg.reward_frequency > 0 and self.current_layer_id % self.amc_cfg.reward_frequency == 0:
+            if self.amc_cfg.reward_frequency is not None and self.current_layer_id % self.amc_cfg.reward_frequency == 0:
                 reward, top1, total_macs, total_nnz = self.compute_reward(False)
             else:
                 reward = 0
diff --git a/examples/automated_deep_compression/automl_args.py b/examples/automated_deep_compression/automl_args.py
index a5981895ed4358ef57d1eecfff554096c28e373f..80b732f8e2fce5ed9dddcb97ad57fa840e7a464b 100755
--- a/examples/automated_deep_compression/automl_args.py
+++ b/examples/automated_deep_compression/automl_args.py
@@ -22,7 +22,7 @@ def add_automl_args(argparser, arch_choices=None, enable_pretrained=False):
                        help='The number of epochs for heatup/exploration')
     group.add_argument('--amc-training-epochs', type=int, default=300,
                        help='The number of epochs for training/exploitation')
-    group.add_argument('--amc-reward-frequency', type=int, default=-1,
+    group.add_argument('--amc-reward-frequency', type=int, default=None,
                        help='Reward computation frequency (measured in agent steps)')
     group.add_argument('--amc-target-density', type=float,
                        help='Target density of the network we are seeking')
@@ -34,3 +34,6 @@ def add_automl_args(argparser, arch_choices=None, enable_pretrained=False):
                        help="The agent algorithm to use")
     # group.add_argument('--amc-thinning', action='store_true', default=False,
     #                    help='Perform netowrk thinning after altering each layer')
+    group.add_argument('--amc-ft-frequency', type=int, default=None,
+                       help='How many action-steps between fine-tuning.\n'
+                       'By default there is no fine-tuning between steps.')