code: def run_keras_parameterized_train_and_eval(
      phoenix_instance, oracle, data_provider
  ):
      """Train, getting parameters from a tuner.
  
      Args:
        phoenix_instance: a phoenix.Phoenix object.
        oracle: a keras_tuner oracle.
        data_provider: The data provider object.
  
      Returns:
        True if the tuner provided a trial to run, False if the tuner
        has run out of trials.
      """
      tuner = ModelSearchTuner(
          oracle=oracle,
          hypermodel=phoenix_instance.keras_model_builder,
          directory=FLAGS.model_dir,
      )
      x_train, y_label, valid = data_provider.get_keras_input(
          batch_size=FLAGS.phoenix_batch_size
      )
  
      tuner.search(
          x_train,
          y_label,
          epochs=FLAGS.train_epochs,
          validation_data=valid,
      )
  
imports: import contextlib
  import copy
  import json
  import os
  import random
  from absl import flags
  from absl import logging
  import keras_tuner
  from model_search import hparam
  from model_search import phoenix
  from model_search import registry
  from model_search.data import data
  from model_search.metadata import ml_metadata_db
  from model_search.proto import phoenix_spec_pb2
  import tensorflow.compat.v2
  from google.protobuf import text_format
label_desc: Use image node_id 9 for calling a global function with example usage: run_keras_parameterized_train_and_eval(phoenix_instance, oracle, data_provider) without return types