code: def test_init_TFDataset_from_ndarrays(self):
      model_fn = self.create_model_fn()
  
      def input_fn(mode):
          x = np.random.rand(20, 10)
          y = np.random.randint(0, 10, (20,))
          if mode == tf.estimator.ModeKeys.TRAIN:
              return TFDataset.from_ndarrays((x, y), batch_size=8)
          elif mode == tf.estimator.ModeKeys.EVAL:
              return TFDataset.from_ndarrays((x, y), batch_per_thread=1)
          else:
              return TFDataset.from_ndarrays(x, batch_per_thread=1)
  
      estimator = TFEstimator.from_model_fn(model_fn)
      estimator.train(input_fn, 10)
      estimator.evaluate(input_fn, ["acc"])
      estimator.predict(input_fn)
  
imports: import pytest
  from bigdl.orca.test_zoo_utils import ZooTestCase
  import tensorflow
  from bigdl.dllib.feature.common import ChainedPreprocessing, FeatureSet
  from bigdl.dllib.feature.image import *
  from bigdl.orca.tfpark import TFDataset, TFEstimator
  from bigdl.orca.tfpark import ZooOptimizer
label_desc: Use image node_id 5 for calling the TestTFParkEstimator obj's underlying member method code with example usage: obj.test_init_TFDataset_from_ndarrays() and returns: TFDataset, TFDataset, TFDataset