def METHOD_NAME(self, plan_path):
    with open(plan_path, 'rb') as f:
        plans = pickle.load(f)
    if self.stage is None:
        assert len(list(plans['plans_per_stage'].keys())) == 1, \
            "If self.stage is None then there can be only one stage in the plans file. That seems to not be the " \
            "case. Please specify which stage of the cascade must be trained"
        self.stage = list(plans['plans_per_stage'].keys())[0]
    self.plans = plans
    stage_plans = self.plans['plans_per_stage'][self.stage]
    if 'pool_op_kernel_sizes' not in stage_plans.keys():
        assert 'num_pool_per_axis' in stage_plans.keys()
        self.print_to_log_file(
            "WARNING! old plans file with missing pool_op_kernel_sizes. Attempting to fix it..."
        )
        self.net_num_pool_op_kernel_sizes = []
        for i in range(max(self.net_pool_per_axis)):
            curr = []
            for j in self.net_pool_per_axis:
                if (max(self.net_pool_per_axis) - j) <= i:
                    curr.append(2)
                else:
                    curr.append(1)
            self.net_num_pool_op_kernel_sizes.append(curr)
    else:
        self.net_num_pool_op_kernel_sizes = stage_plans[
            'pool_op_kernel_sizes']