def test_value_search_checks_bad_solutions(self): inputs = {'tensor': [10, 20, 30], 'index': -2} output = 20 constants = [1, 20] results = value_search.run_value_search_from_example( inputs=inputs, output=output, constants=constants, settings=settings_module.from_dict( {'require_all_inputs_used': True})) self.assertLen(results.solutions, 1) self.assertEqual(results.solutions[0].expression, 'tensor[index]') results = value_search.run_value_search_from_example( inputs=inputs, output=output, constants=constants, settings=settings_module.from_dict({ 'require_all_inputs_used': False, 'require_one_input_used': True })) self.assertLen(results.solutions, 1) self.assertEqual(results.solutions[0].expression, 'tensor[1]') results = value_search.run_value_search_from_example( inputs=inputs, output=output, constants=constants, settings=settings_module.from_dict({ 'require_all_inputs_used': False, 'require_one_input_used': False })) self.assertLen(results.solutions, 1) self.assertEqual(results.solutions[0].expression, 'tf.constant(20)')
def run_value_search_from_colab( inputs: Dict[Text, Any], output: Any, constants: Optional[List[Any]] = None, description: Optional[Text] = None, settings: Optional[settings_module.Settings] = None ) -> value_search.ValueSearchResults: """Value search endpoint for the Colab interface. Args: inputs: A dict mapping input variable names to input tensors. output: The corresponding desired output. constants: An optional list of scalar constants. description: An optional natural language description of the task. settings: A Settings object containing settings for the search. Returns: A ValueSearchResults namedtuple. """ if not WARMED_UP: warm_up() return value_search.run_value_search_from_example( inputs=inputs, output=output, settings=settings if settings is not None else DEFAULT_SETTINGS, constants=constants, description=description, source='From TF-Coder Colab', description_handler=DESCRIPTION_HANDLER, tensor_model=TENSOR_MODEL, tensor_config=TENSOR_CONFIG)
def test_run_value_search_from_example_with_constants(self): results = value_search.run_value_search_from_example( inputs=[ [10, 20, 30], ], output=[54, 64, 74], settings=self.settings, constants=[44]) self.assertLen(results.solutions, 1) self.assertEqual(results.solutions[0].expression, 'tf.add(in1, tf.constant(44))')
def test_run_value_search_from_example(self): results = value_search.run_value_search_from_example( inputs=[[1, 2, 3], [10, 20, 30]], output=[11, 22, 33], settings=settings_module.from_dict({ 'timeout': 5, 'max_solutions': 2 })) self.assertLen(results.solutions, 2) self.assertEqual(results.solutions[0].expression, 'tf.add(in1, in2)') self.assertEqual(results.solutions[1].expression, 'tf.add(in2, in1)') # Linter suggests self.assertLess() but it's wrong. self.assertTrue(0.0 < results.total_time < 5.0) # pylint: disable=g-generic-assert