def renderProgram(self, freeze=False, return_prob=False): 
        while True:
            self.reset()
            try:
                program = self.render('Program')
            except BaseException as e:
                if 'Choice name' in str(e):
                    continue
                else:
                    raise e

            program = gu.fixWhitespace(program)
            rubricItems = self.getRubricItems()
            choices = self.choices

            if self._isCodeOrg:
                program, rubricItems, choices, code = self.processCodeOrgProgram(
                    program, rubricItems, choices)
                self.rvChoiceOrder.append('doesNotGetNesting')

            if self.choice_style == SAMPLE_TEMPERED and not freeze:
                self.temperDistribution(self.choices, self.renderOrder)

            if return_prob:
               return program, rubricItems, choices, self.rvChoiceOrder, self.data_temper, self.log_prob
            else: 
                return program, rubricItems, choices, self.rvChoiceOrder, self.data_temper
예제 #2
0
    def renderProgram(self, program_args, rvAssignments):
        self.reset()

        self.h0 = self.model.init_rnn_hiddens(1)
        self.hidden_store = []

        program_args = [p.to(self.agent.device) for p in program_args]
        self.program_emb = self.model.program_encoder(*program_args,
                                                      return_hiddens=True)
        self.rvAssignments = rvAssignments.clone()
        self.node_i = None

        program = self.render('Program')
        program = gu.fixWhitespace(program)
        rubricItems = self.getRubricItems()

        return program, rubricItems, self.choices, self.rvChoiceOrder, self.rvAssignments
예제 #3
0
    def renderProgram(self):
        while True:
            self.reset()

            try:
                program = self.render('Program')
            except BaseException as e:
                if 'Choice name' in str(e):
                    continue
                else:
                    raise e

            program = gu.fixWhitespace(program)
            rubricItems = self.getRubricItems()
            choices = self.choices

            code = None
            if self._isCodeOrg:
                program, rubricItems, choices, code = self.processCodeOrgProgram(
                    program, rubricItems, choices)

            return program, rubricItems, choices, code
예제 #4
0
 def renderProgram(self):
     self.reset()
     program, highlights = self.render('Program')
     program = gu.fixWhitespace(program)
     return program, highlights